【问题标题】:python - Json data with different keyspython - 具有不同键的 Json 数据
【发布时间】:2021-11-11 21:19:50
【问题描述】:

我正在尝试在 Json 中存储两个运行选项。我的尝试如下。这是组织 Json 对象的明智方法吗?另外,我怎样才能将它们中的任何一个读入元组?我尝试了tuple([(item['opt_one'],item['val_one']) for item in config['opts']]),但出现了一个关键错误。非常感谢您的帮助。

"opts":[
    {
        "opt_one": "one_option",
        "val_one" : "value_one"
     },
     {
        "opt_two": "two_option",
        "val_two" : "value_two"
      }
      ]

【问题讨论】:

    标签: python arrays json python-3.x


    【解决方案1】:
    import json
    
    j = """
    {"opts":[
        {
            "opt_one": "one_option",
            "val_one" : "value_one"
         },
         {
            "opt_two": "two_option",
            "val_two" : "value_two"
          }
        ]
    }
    """
    # note the braces around "opts"
    
    J = json.loads(j) #turns it into a python object
    print(J) #see!
    
    # the long way to do it, but you can see the process
    R = []
    for item in J['opts']:
        r = []
        for v in item.values():
            r.append(v)
        R.append(tuple(r))
    
    print(tuple(R)) # solution
    

    【讨论】:

      【解决方案2】:
      # or it can be done in 1 line
      print(tuple(map(lambda v: tuple(v.values()), J['opts']))) 
      

      【讨论】:

      • 非常感谢。但是我怎样才能读取其中任何一个,例如只将 opt_two 和 val_two 读入一个元组?
      • opts 是一个字典列表。每个字典都有一个索引(从 0 开始)。每个字典都有 key() 或 values() 或两者都有 - items()。 J['opts'][0] 和 J['opts'][1] 是两个字典。
      猜你喜欢
      • 2023-03-30
      • 2023-01-13
      • 2023-02-11
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2014-04-27
      相关资源
      最近更新 更多