【问题标题】:Accessing json array in python without referring to its name在python中访问json数组而不参考其名称
【发布时间】:2017-07-12 04:08:27
【问题描述】:

我是 python 新手,我想了解如何在不参考其名称的情况下访问 json 对象中的数组。

给定的 json 对象具有以下结构

import json

input_json = {
    "records": [
        {
            "values": {
                "col1": "1"
            },
            "no": 1,
        },
        {
            "values": {
                "col1": "2"
            },
            "no": 2,
        }
    ],
    "number_of_records": 2
}

myVar = json.load(input_json)
for i in myVar['records']:            # How do I replace this line?
      print  i['values']['col1']

我需要遍历“记录”数组中的对象。如何在不使用 myVar['records'] 的情况下获取数组?

请注意,代码也不能依赖于 json 属性的顺序。唯一可以保证的是 json 字符串中只有一个数组。

【问题讨论】:

    标签: python arrays json


    【解决方案1】:
    input_json = {
        "records": [
            {
                "values": {
                    "col1": "1"
                },
                "no": 1,
            },
            {
                "values": {
                    "col1": "2"
                },
                "no": 2,
            }
        ],
        "number_of_records": 2
    }
    
    for anything in input_json:
        if isinstance(input_json[anything], list):
            for values in input_json[anything]:
                print(values['values']['col1'])
    

    如果您不知道“values”和“col1”的名称,也可以进一步嵌套 for 循环。

    【讨论】:

    • 代码不是还在依赖属性名'records'吗?我误会了吗?
    • 它不依赖于“记录”,而是records。您可以将其更改为任何内容
    • 太棒了。所以基本上我们正在循环输入 json 并检查其中是否有任何列表。如果是这样,我们从中获取“值”对象并继续。对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2016-10-10
    • 1970-01-01
    • 2015-07-29
    • 2020-04-09
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多