我试图获取json路径的所有对象,但找不到在同一路径中引用“所有对象”的方法
{
"sfw-per-service-set-nat-pool": [
{
"pool-name": [
{
"data": "11111111"
}
],
"translation-type": [
{
"data": "2222222222"
}
],
"pool-address-range-list": [
{
"pool-address-range": [
{
"data": "1.1.1.1-1.1.1.1"
},
{
"data": "2.2.2.2-2.2.2.2"
}
]
}
]
这是我在“pool address range”中尝试访问的json片段,并获取其中的所有对象,但我总是在“pool address range”中通过“1”更改json路径“address=item['pool-address-range-list'][0]['pool-address-range'][1]['data']”
import json
with open('dd.json') as f:
data = json.load(f)
for item in data['sfw-per-service-set-nat-pool']:
name = item['pool-name'][0]['data']
address=item['pool-address-range-list'][0]['pool-address-range'][0]['data']
block= item['port-blocks-in-use'][0]['data']
mblock= item['max-port-blocks-used'][0]['data']
预期结果必须是“池地址范围”中的所有对象,并且只进行一次迭代,这是可能的吗
如果您试图获取
'pool-address-range-list'
中的所有地址,那么可以在循环中使用列表理解。从技术上讲,这是另一个循环,但它似乎是你的最佳选择取决于你想要的是一个集合还是一个列表,这里有一个集合:
你当然可以用更少的行来完成,但是代码是可读的,这对于那些疯狂的数据结构很重要
相关问题 更多 >
编程相关推荐