2016-03-11 3 views
-1

Как бы я мог извлечь данные, такие как ниже. например, вытяните тело. Я буду делать это для нескольких записей в api, а не только для одной записи, поэтому, я думаю, мне нужно будет использовать какой-то цикл. Большое спасибо: DИзвлечь данные из json с помощью запросов

>>> r3 = requests.get('www.websiteexample.com/api', params=header) 
>>> print(r3) 

"ListingId":4557112,"Title":"Audi A4 Luxary Ship for Sale 2005","Category":"0001-0268-0271-","StartPrice":17985.0000,"StartDate":"\\/Date(1457637570103)\\/","EndDate":"\\/Date(1458242370103)\\/","ListingLength":null,"IsBold":true,"AsAt":"\\/Date(1457680107428)\\/","CategoryPath":"\\/Trade-Me-Motors\\/Cars\\/Audi","Region":"Northland","Suburb":"Whangarei","NoteDate":"\\/Date(0)\\/","PriceDisplay":"$17,985","HasFreeShipping":true,"BodyStyle":"Sedan","Doors":0,"EngineSize":2000,"Make":"Audi","Model":"A4","Odometer":61988,"Year":2005,"Transmission":"Automatic","Fuel":"Petrol","NumberPlate":"ABC123","BestContactTime":"Evening","Cylinders":0,"Owners":0,"Vin":"WAUZZZ8EX5A457186","WofExpires":"\\/Date(0)\\/","RegistrationExpires":"\\/Date(0)\\/","StereoDescription":null,"ExteriorColour":"Dark Blue","ImportHistory":null,"IsDealer":false}],"FoundCategories":[]}' 

Выход выше является лишь небольшой отрывок (слишком долго иначе)

+1

Используйте python 'json' [library] (https://docs.python.org/3/library/json.html). –

ответ

1

Reading the documentation, удивительно первый пример из первого матча Google для requests на первом экране рассказывает, как получить тело JSon:

>>> r3 = requests.get('www.websiteexample.com/api', params=header) 
>>> struct = r3.json() 

Тогда вы могли бы, например, напечатать все объекты верхнего уровня, как это

>>> for k, v in struct.items(): 
...  print(k, v) 

Или FoundCategories:

>>> struct['FoundCategories'] 
[] 
+0

обновленный пост, чтобы включить пример вывода – musss

+0

, когда я делаю это и добавляю + «AAAA», он печатает все термины в одном словаре (который указан, поскольку в конце есть только один AAA). Я пытаюсь получить детали отдельно – musss

+0

@musss Я бы не знал, вы ** не ** публиковали полное содержание или правильный ответ, таким образом, я не могу ответить на точный вопрос. –

0

Не очень хорошо структурированный вопрос, но вы можете использовать json_normalize из панд from pandas.io.json import json_normalize для извлечения данных из JSON. Однако это не из запросов.

import urllib, json 
from pandas.io.json import json_normalize 

url = "www.websiteexample.com/api" 
response = urllib.urlopen(url) 
data = json.loads(response.read()) 
data2 = json_normalize(data) 
Смежные вопросы