2014-05-20 99 views
0

每當我執行此代碼的一個字符...在JSON對象行返回每行

import json, urrlib2 
res = urrlib2.urlopen('http://website.com/data.json') 
data = json.load(res) 
for line in json.dumps(data["specific"]["data"], sort_keys=True, indent=0): 
    print line 

每一個角色都被打印在一個新行。我正在使用python2.7,而且我幾乎不知道,發生了什麼問題。它不應該這樣做,因爲當我在for行語句之前打印數據時,我會得到一個很好格式化的東西列表。

+0

'json.dumps'創建一個字符串。當你遍歷一個字符串時,你是通過字符來完成的。你爲什麼使用'.dumps'? – jonrsharpe

+0

@jonrsharpe由於dump總是拋出它至少需要2個參數的錯誤 - 儘管事實上我給了它兩個以上的參數。據說它的工作原理與轉儲一樣,或者我讀錯了嗎? – user3656897

+0

'json.dumps(obj,...)'創建一個格式化的字符串; 'json.dump(obj,f,...)'將字符串寫入一個文件(第二個**位置**參數)。你想達到什麼目的?如果你只是想遍歷內容,使用'在數據['特定'] ['數據']:'的行。 – jonrsharpe

回答

0

您需要使用來獲得數據讀取:

data = res.read() 
data = json.load(data) 
1

json.dumps(obj)將會把obj成一個格式化字符串(可以寫出使用json.dump(obj, file)文件當您遍歷字符串,你迭代。在它的字符:

>>> for line in "abc": 
    print(line) 


a 
b 
c 

相反,我認爲要遍歷內容的對象,例如:

for line in data["specific"]["data"]: 
    print line