【问题标题】:How to name each instance of a nested dictionary in Python?如何在 Python 中命名嵌套字典的每个实例?
【发布时间】:2016-11-08 18:12:23
【问题描述】:

我编写了这段代码来创建一个嵌套字典,但我无法命名每个实例。

def genvlandict(num,attrs):
    val=num
    vlans = []
    for i in range(val):
       vlans.append(dict([("Vlan_Attr"+str(i)+'.'+str(x), "val"+str(i)+'.'+str(x)) for x in range(0, attrs, +1)]))
    return vlans

print(json.dumps(genvlandict(5,3), indent=1))

我能否获得帮助以获取嵌套字典中每个字典实例的名称?

【问题讨论】:

  • 我不明白这个问题。字典在列表中。为什么他们需要名字?

标签: python json dictionary


【解决方案1】:

vlans 更改为字典?通过一些最小的更改,您的代码将类似于:

import json

def genvlandict(num,attrs):
    val=num
    vlans = {}
    for i in range(val):
       vlans['dict%d' % i] = dict([("Vlan_Attr"+str(i)+'.'+str(x), "val"+str(i)+'.'+str(x)) for x in range(0, attrs, +1)])
    return vlans

print(json.dumps(genvlandict(5,3), indent=1))

导致:

>>> 
{
 "dict4": {
  "Vlan_Attr4.2": "val4.2", 
  "Vlan_Attr4.1": "val4.1", 
  "Vlan_Attr4.0": "val4.0"
 }, 
 "dict1": {
  "Vlan_Attr1.2": "val1.2", 
  "Vlan_Attr1.0": "val1.0", 
  "Vlan_Attr1.1": "val1.1"
 }, 
 "dict0": {
  "Vlan_Attr0.2": "val0.2", 
  "Vlan_Attr0.1": "val0.1", 
  "Vlan_Attr0.0": "val0.0"
 }, 
 "dict3": {
  "Vlan_Attr3.0": "val3.0", 
  "Vlan_Attr3.1": "val3.1", 
  "Vlan_Attr3.2": "val3.2"
 }, 
 "dict2": {
  "Vlan_Attr2.1": "val2.1", 
  "Vlan_Attr2.0": "val2.0", 
  "Vlan_Attr2.2": "val2.2"
 }
}
>>> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 2016-12-08
    • 2015-09-30
    • 2020-11-12
    • 2021-09-27
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多