我正在寫一些代碼,我的最高目標是提供一些json格式的信息。我想顯示servernames節點和serverurls這樣的:(我的目的不是漂亮的打印,但我只是顯示它這個樣子,所以它更明顯)python中的dictionary.append的行爲
{
"server": [
{ "name" : "some_server_name", "url" : "some_server_url" }
{ "name" : "another_server_name", "url" : "another_server_url" }
]
}
我現在有兩個列表,一個與servernames節點和另一個與serverulrs。我遍歷名稱,然後訪問匹配的網址。在完成之後,我想將它附加到字典中。當我收到這本字典時。我想將此附加到我的json_dict。我創建了這個字典,因爲我有兩個其他列表,我想在json信息中顯示。 (您可以忽略RDP和證書,因爲它們已經正確顯示)
def build_dict(server_name, server_url, rdp, cert):
json_dict = defaultdict(list)
server_dict = {}
if server_name and server_url:
for i, iter_name in enumerate(server_name):
server_dict.update(name = iter_name, url = server_url[i])
json_dict['server'].append(server_dict)
if rdp:
for iter_rdp in rdp:
json_dict['config'].append(iter_rdp)
if cert:
for iter_cert in cert:
json_dict['cert'].append(iter_cert)
return json_dict
我servernames節點列表中的條目:
[u'123name」,u'qwer123' ]
而且我serverurls列表中的條目:
[u'123url」,u'qwer123' ]
不幸的是,最後的輸出是這樣的:
{"cert": ["123url", "123123", "123123123"],
"config": ["123rdp", "123123", "123123123"],
"server": [
{"url": "qwer123", "name": "qwer123"},
{"url": "qwer123", "name": "qwer123"}
]
}
可以忽略證書和配置,因爲這已經按預期工作。我只是不明白,爲什麼我有:
{"url": "qwer123", "name": "qwer123"},
{"url": "qwer123", "name": "qwer123"}
而不是:
{"url": "123name", "name": "123url"},
{"url": "qwer123", "name": "qwer123"}
作爲輸出。
可能重複(http://stackoverflow.com/questions/2797114/python-references) – simonzack 2014-11-04 10:12:33
你們可以請很好地解釋downvote :)?我希望我的問題儘可能好 – ZedsWhatSheSaid 2014-11-04 10:12:48
您的問題可能在發佈的代碼之外,您可以更改它以顯示您的調用build_dict的方式。我的意思是,你確定你不是用相同的參數調用它嗎? – dpgaspar 2014-11-04 10:16:08