Currently my code works but I wanted to know if I'm going about this the right way. I want to be able to individually call variables from method 'data_by_name' in 'otherfile.py' . At the moment I import 'otherfile.py' and put the elements into a list within 'main.py' and use tuple unpacking to give each element a variable name.
Could I go about this a better way?
otherfile.py
import requests
import json
API_KEY = "XXX"
PROJECT_TOKEN = "XXX"
RUN_TOKEN = "XXX"
class Data:
def __init__(self, api_key, project_token):
self.api_key = api_key
self.project_token = project_token
self.params = {"api_key":api_key}
self.get_data()
def get_data(self):
r = requests.get('https://www.parsehub.com/api/v2/projects/PROJECT_TOKEN/last_ready_run/data', params={"api_key": API_KEY})
self.data = json.loads(r.text)
def data_by_name(self,country):
data = self.data['country']
for content in data:
if content['Cname'].lower() == country.lower():
print(content)
name = content['Cname']
pop = content['population']
popRank = content['popRank']
growth = content['growthRate']
per = content['worldPer']
area = content['area']
capital = content['capital']
region = content['region']
gpd = content['gpd']
return(name,pop,popRank,growth,per,area,capital,region,gpd)
if __name__ == '__main__':
data = Data(API_KEY,PROJECT_TOKEN)
data.data_by_name('Russia')
main.py
from ParsehubCode import Data,API_KEY,PROJECT_TOKEN
country = Data(API_KEY,PROJECT_TOKEN)
test = country.data_by_name("china")
list1 = []
for element in test:
list1.append(element)
for x in list1:
A,B,C,D,E,F,G,H,I = list1
print(A,B,C)
country.json
{
"country": [
{
"Cname": "China",
"name": "China Population 2020 (Live)",
"population": "1,438,719,354",
"popRank": "1",
"growthRate": "0.39%",
"worldPer": "18.47%",
"area": "9,706,961 km²",
"capital": "Beijing",
"region": "Asia",
"gpd": "$10,746.78"
}
{