2012-06-19 129 views
1

我想要做的是將Json數據作爲Python列表(或數組)使用,我嘗試了幾次,但沒有成功。我的json數據是這樣的:如何使用Python獲取Json數據?

{ 
    "status":"OK", 
    "List":{ 
     "stuff":[{ 
      "id":"326", 
      "name":"a", 
      "url":"autob-fulla.tgz", 
     },{ 
      "id":"327", 
      "name":"b", 
      "url":"auto-fullb.tgz", 
     },{ 
      "id":"328", 
      "name":"c", 
      "url":"auto-fullc.tgz", 
     }] 
    } 
} 

我想返回「id」的所有值。現在,我的代碼是這樣的:

import json 
def retrieve(): 
    print('retrieving results...') 
    testQueueID = '1'; 
    base_url1 = 'http://localhost:8080/stuff' 
    conn = Connection(base_url1, username='admin', password='admin') 
    resp = conn.request_get("", args={}, headers={'content-type':'application/xml', 'accept':'application/xml'}) 
    decoded_json = json.loads(json.dumps(resp, sort_keys=True, indent=4, skipkeys=True)) 
    return decoded_json 
+1

您的代碼似乎在請求XML,但您正在討論解碼JSON。這裏發生了什麼? – Amber

+0

我的不好,標題應該是:headers = {'content-type':'application/xml','accept':'application/json'} – Nancy

+0

在這種情況下,你可能不應該使用'json.dumps'在這裏 - ''json.loads()'應該是你所需要的。 Yahoo! Yahoo! Yahoo!!!!!!!!!!!!!!!!!!!!!!!!!!它的作品...謝謝你,我的朋友。你真的很好。謝謝,琥珀。 :-) – Amber

回答

4

只需要撥打json.dumps即可。你已經有一個JSON字符串,所以你需要的是json.loads()

+0

謝謝Amber。這工作! :-) – Nancy

+0

如果答案解決了您的問題,您應該點擊左側的綠色複選標記將其標記爲已接受。 :) – Amber

+0

:-)謝謝你,琥珀。我接受了這個。 :-) – Nancy

1

1)XML = Json的

2)試試這個http://www.doughellmann.com/PyMOTW/json/第一!它會教你。

3.)簡單的代碼,讓你開始。查看打印的數據。

import json 
from pprint import pprint 
json_data=open('json_datafile') 

data = json.load(json_data) 
pprint(data) 
json_data.close() 
+0

謝謝,Vrashabh。讓我試試這個。 – Nancy

+0

我試過了:json_data = open('parameter.json') data = json.load(json_data)----最後一行得到錯誤 – Nancy

+0

南希請你提供錯誤? – Nilesh