鉴于dict(下面的片段),结构将始终相同,但是键名'private'
可能会更改名称,而我没有独立的方式来知道{{1}的值是什么密钥的一部分。
'private'
如何参考json = simplejson.loads(open('servers.list', 'r').read())
for server in json['servers']:
{
"servers": [
{
"addresses": {
"private": [
{
"addr": "10.2.198.244",
"version": 4
},
{
"addr": "10.4.189.211",
"version": 4
}
]
}
}
]
}
?
一般情况下,这会有效,但这不是用通配符替换'addr'
的方法:
'private'
答案 0 :(得分:1)
对于这个非常人为的例子中的地址0的一次性选择:
>>> addr0 = json['servers'][0]['addresses'].values()[0][0]['addr']
>>> addr0
'10.2.198.244'
更一般地说,很难说。
密钥private
会发生什么变化?它会public
有机会吗?看起来可能存在addresses
字典中可能存在的其他类型的地址(例如公共地址)。您不能在字典中假设特定的键顺序,这意味着您不能依赖dict.values()
返回列表索引0处的私有地址。如果没有可靠的密钥,则无法预测。