Я пытаюсь создать небольшой скрипт, который будет проходить через API Etsy и получить определенную информацию. API возвращает 25 разных списков в json, и я был бы признателен, если бы кто-то помог мне научиться обрабатывать по одному.Parsing Несколько элементов json в python
Вот пример JSON я имею дело с:
{"count":50100,"results":[{"listing_id":114179207,"state":"active"},{"listing_id":11344567,"state":"active"},
и так далее.
Есть ли простой способ обработки только одного из этих списков одновременно, чтобы минимизировать количество вызовов, которые я должен внести в API?
Вот некоторые из кода, как я имею дело только с одним, когда я ограничиваю результаты возвращаются к 1:
r = requests.get('http://openapi.etsy.com/v2/listings/active?api_key=key&limit=1&offset='+str(offset_param)+'&category=Clothing')
raw_json = r.json()
encoded_json = json.dumps(raw_json)
dataObject = json.loads(encoded_json)
if dataObject["results"][0]["quantity"] > 1:
if dataObject["results"][0]["listing_id"] not in already_done:
already_done.append(dataObject["results"][0]["listing_id"])
s = requests.get('http://openapi.etsy.com/v2/users/'+str(dataObject["results"][0]["user_id"])+'/profile?api_key=key')
raw_json2 = s.json()
encoded_json2 = json.dumps(raw_json2)
dataObject2 = json.loads(encoded_json2)
t = requests.get('http://openapi.etsy.com/v2/users/'+str(dataObject["results"][0]["user_id"])+'?api_key=key')
raw_json3 = t.json()
encoded_json3 = json.dumps(raw_json3)
dataObject3 = json.loads(encoded_json3)
Так что я мог бы просто перебирать объекты dataObject именно так? – Heisenberg
Как только вы декодируете строку JSON в структуры данных Python (используя 'json.loads()' или 'request.Response.json()', как вы там делаете), да, вы можете повторять их так же :) – woozyking
Ничего себе, это почти слишком легко. Ха-ха. Спасибо за помощь. Сейчас у меня это работает. – Heisenberg