Я пытаюсь запросить несколько вызовов API в скрипте Python. Поскольку мой код настроен сейчас, я использую запросы на установление соединений и циклический переход по URL-адресам API.
Ответ JSON записывается в файл, поэтому я могу управлять данными извне. Я могу установить соединение и записать ответ в файл без проблем.
Однако моя проблема возникает, когда я пытаюсь проверить завершенный файл в jsonlint, который говорит мне, что у меня есть несколько полей верхнего уровня, которые выглядят как заголовки ответа.
Итак, вопрос в том, как я могу перебрать свои API-интерфейсы, чтобы написать один действительный файл JSON?
До сих пор я пытался изменить ответ JSON в словарь Python, и теперь я немного растерян, что делать дальше ..
Вот мой фрагмент запроса / файла:
for x, y in sites[data[z]].items():
url = "".join(y['host'] + endpoint + 'customer_id=' + y['customer_id'] +
'&requestor_id=' + y['requestor_id'] + '&api_key=' + y['api_key'])
urls = url + "&begin_date=" + begin + "&end_date=" + end
r = requests.get(urls) # make connections to vendors
print("Connection Status: ", r.status_code) # print http response code
try:
r.json() # get data from vendors
except json.decoder.JSONDecodeError:
print(urls, "This is not a JSON format..") # catch vendor JSON errors
print("I'm saving your usage statistics to a text file.")
with open(reportName + '-' + begin + '-' + end + '.json', 'a') as datafile:
json.dump(r.json(), datafile) # write api resp to .JSON file
print("I'\'m done writing your usages to file:" + reportName + '-' + begin
+ '-' + end + ".json.")
Вот ответ API
{
"Report_Header":{ },
"Report_Items":[ ]
}{
"Report_Header":{ },
"Report_Items":[ ]
}