2013-07-16 36 views
0

如何解析json輸出只從數據獲取列表,然後將輸出添加到google.com/confidetial和列表中的其他字符串中。 所以我的JSON放出來,我將其命名爲「文本」解析json文件並將字符串添加到URL

text = {"success":true,"code":200,"data":["Confidential","L1","Secret","Secret123","foobar","maret1","maret2","posted","rontest"],"errs":[],"debugs":[]}. 

我所希望做的是讓下唯一的數據列表。到目前爲止,我得到的腳本是把整個json放到了外面。

json.loads(text) 
print text 
output = urllib.urlopen("http://google.com" % text) 
print output.geturl() 
print output.read() 

回答

3
jsonobj = json.loads(text) 
print jsonobj['data'] 

將打印在JSON的data部分名單。

如果你想打開每個爲google.com後的鏈接,你可以試試這個:

def processlinks(text): 
    output = urllib.urlopen('http://google.com/' % text) 
    print output.geturl() 
    print output.read() 

map(processlinks, jsonobj['data']) 
+0

真棒感謝的作品。謝謝 –

0
info = json.loads(text) 
json_text = json.dumps(info["data"]) 

使用json.dumps轉換從json.loads得到回常規JSON文本蟒蛇數據結構。

因此,您可以在之前使用text的地方使用json_text,它應該只有選定的鍵,在您的情況下:"data"

+0

Thanx您的輸入。 –

0

也許這樣的事情哪裏result是你的JSON數據:

from itertools import product 

base_domains = ['http://www.google.com', 'http://www.example.com'] 
result = {"success":True,"code":200,"data":["Confidential","L1","Secret","Secret123","foobar","maret1","maret2","posted","rontest"],"errs":[],"debugs":[]} 
for path in product(base_domains, result['data']): 
    print '/'.join(path) # do whatever 

http://www.google.com/Confidential 
http://www.google.com/L1 
http://www.google.com/Secret 
http://www.google.com/Secret123 
http://www.google.com/foobar 
http://www.google.com/maret1 
http://www.google.com/maret2 
http://www.google.com/posted 
http://www.google.com/rontest 
http://www.example.com/Confidential 
http://www.example.com/L1 
http://www.example.com/Secret 
http://www.example.com/Secret123 
http://www.example.com/foobar 
http://www.example.com/maret1 
http://www.example.com/maret2 
http://www.example.com/posted 
http://www.example.com/rontest 
+0

我之前完成了這個工作,但由於json中的列表不時發生變化,我想解析結果而不將硬編碼到腳本中。 –

+0

@ user2548131不會硬編碼列表...'result = json.loads(text)'或者你正在獲取數據... –

+0

我喜歡這個例子,所以說我想從每個json字符串要打印的網址我該如何處理它? –