2013-09-26 21 views
-1

我怎麼能有我的JSON輸出像這樣的列表和輸出循環:在JSON中通過

["fields": [{"name" : "id"},{"name":"item"},{"name":"some"}]] 

即使知道names存儲在像這樣的列表:

l = [ "id","item","some"] 

我曾嘗試這個:

print json.dumps({'success': True, 'fields' : {'name' : s} for s in l}) 

但它不工作,任何幫助將不勝感激,謝謝。

+0

你不能像你那樣精確地輸出你的Json輸出。這是無效的JSON。你似乎在用字典混淆列表。 –

+0

我實際擁有的json輸出大於這個。這只是一個簡單的例子。 – salamey

回答

2

使用列表理解:

>>> [{'name' : s} for s in l] 
[{'name': 'id'}, {'name': 'item'}, {'name': 'some'}] 

>>> json.dumps({'success': True, 'fields' : [{'name' : s} for s in l]}) 
'{"success": true, "fields": [{"name": "id"}, {"name": "item"}, {"name": "some"}]}' 
3

你想念你需要一個列表理解,這將使「字段」列表中的方括號。

import json 

l = [ "id","item","some"] 
print json.dumps({'success': True, 'fields' : [{'name' : s} for s in l]})