2017-08-12 49 views
0

我想解析一個API的JSON文件,我不知道爲什麼它轉換爲列表。爲什麼我的解析JSON轉換爲列表python?

from urllib2 import Request, urlopen 
import json 
Auth_key = 'get ur own key' 
headers = { 
    'Authorization': Auth_key 
} 
request = Request('https://app.com/orders?orderStatus=awaiting_shipment', headers=headers) 

def remove_nulls(d): 
    d = {k: v for k, v in d.iteritems() if v is not None} 
    return { k:v for k, v in d.items() if v } 

response_body = urlopen(request).read() 

parsed = json.loads(response_body, object_hook=remove_nulls) 
jsonData = parsed["orders"] 
#print(json.dumps(jsonData, indent=1, sort_keys=True)) 
print type(jsonData) 

當我檢查「解析」這是一個字典,但「jsonData」不是。在此先感謝

+1

jsonData指的是不同的對象,顯然是一個清單,在你的JSON響應,所以它應該是同一類型比它的容器? – PRMoureu

+0

爲什麼「解析」轉換爲列表而不是保留爲字典? –

+0

'parsed'保持字典,你正在訪問'jsonData'類型,而不是'parsed'類型,'print type(parsed)'來檢查這個 – PRMoureu

回答

0

您正在訪問從dictkey,因此它可以是任何其他datatype

這可能是跟你的情況:

In [91]: jsonData = {'orders': [1, 2, 3, 4], 'others': {}} 

In [92]: type(jsonData['orders']) 
Out[92]: list 
+0

我的'訂單'有子字典,所以我試圖訪問這些值。 –

+2

請分享你的字典。 –

相關問題