Я написал функцию, которая получает некоторые данные из API и возвращает их в словарь. Когда я выполнил это работает нормально. Проблема в том, что я пытаюсь выполнить эту функцию дважды в одно и то же время, используя библиотеку лучей. Данные корректно поступают из API, но не добавляются в словарь.
Companies = dict()
def call_company_api(company_id, dictionary):
data = requests.get(API_CALL_COMPANY_URL.format(company_id)).json()
# name = data['data']['krs_podmioty.nazwa'] FULL NAME
name = data['data']['krs_podmioty.nazwa_skrocona']
city = data['data']['krs_podmioty.adres_poczta']
nip = data['data']['krs_podmioty.nip']
community_id = data['data']['krs_podmioty.gmina_id']
county_id = data['data']['krs_podmioty.powiat_id']
voivodeship_id = data['data']['krs_podmioty.wojewodztwo_id']
try:
community = gminy_list[community_id]
county = powiaty_list[county_id]
voivodeship = wojewodztwa_list[voivodeship_id]
except KeyError:
community = community_id
county = county_id
voivodeship = voivodeship_id
dictionary[name] = [city, county, community , voivodeship, nip]
когда я выполняю этот код ниже, работает нормально
def call_company():
for k in comapanies_list:
call_company_api(k, Companies)
call_company()
print(Companies) --> {'BELKA19': ['Warszawa', 'Warszawa', 'Warszawa', 'Mazowieckie', '5252786971'], 'GSW CONSTRUCTION': ['Kraków', 'Kraków', 'Kraków', 'Małopolskie', '6762564804']}
В этом случае данные не добавляются в словарь, знаете, как это исправить? Я попытался добавить отдельные словари для всех функций call_items, но это также не работает должным образом, как я ожидал.
ray.init()
@ray.remote
def call_l1_items():
for k in l1:
call_company_api(k, Companies)
@ray.remote
def call_l2_items():
for k in l2:
call_company_api(k, Companies)
ret_id1 = call_l1_items.remote()
ret_id2 = call_l2_items.remote()
ret1, ret2 = ray.get([ret_id1, ret_id2])
print(Companies) --> {}