我正在写一些代码,我的最高目标是提供一些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