Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Python访问JSON中的嵌套对象_Python_Json - Fatal编程技术网

如何通过Python访问JSON中的嵌套对象

如何通过Python访问JSON中的嵌套对象,python,json,Python,Json,我在JSON文件中有一个条目。在“对象”:[]列表中,我有“标题”:。我想创建一个列表,在每个JSON列表中添加每个“title:的值。最后,我的目标是列出如下清单: titles=[Mastercard,Mastercard,Alienware,Oppo,Alienware,…] { "ID": "ckksku7b800003e5m5vne0v7c", "DataRow ID": "ckkskgs561yh00sgo

我在JSON文件中有一个条目。在
“对象”:[]
列表中,我有
“标题”:
。我想创建一个列表,在每个JSON列表中添加每个
“title:
的值。最后,我的目标是列出如下清单:

titles=[Mastercard,Mastercard,Alienware,Oppo,Alienware,…]

{
  "ID": "ckksku7b800003e5m5vne0v7c",
  "DataRow ID": "ckkskgs561yh00sgog3vf1v29",
  "Labeled Data": "https://storage.labelbox.com/ckkqt5y5ulks20757tbduodbw%2Fe2510252-76ba-df14-193b-43d4527d705a-Screenshot%202021-02-05%20at%2017.46.56.png?Expires=1614084797277&KeyName=labelbox-assets-key-1&Signature=e69tqkxYhNNWkJL3TaxA9wjtYGM",
  "Label": {
    "objects": [
      {
        "featureId": "ckkskpirs0koo0y771e2veiik",
        "schemaId": "ckkskil310j1o0y8r0fu252jy",
        "title": "Mastercard",
        "value": "mastercard",
        "color": "#006FA6",
        "bbox": {
          "top": 631,
          "left": 891,
          "height": 25,
          "width": 40
        },
        "instanceURI": "https://api.labelbox.com/masks/feature/ckkskpirs0koo0y771e2veiik?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJja2txdDV5NmFtbm1iMDc0MGpsem03d2RwIiwib3JnYW5pemF0aW9uSWQiOiJja2txdDV5NXVsa3MyMDc1N3RiZHVvZGJ3IiwiaWF0IjoxNjEyODc1MTk3LCJleHAiOjE2MTU0NjcxOTd9.P-MyOgZidmSZSTLfhwpSsRfOaovsReP5MzpDtsrnWs0"
      },
      {
        "featureId": "ckkskqn410l530y770svj1z3g",
        "schemaId": "ckkskil310j1o0y8r0fu252jy",
        "title": "Mastercard",
        "value": "mastercard",
        "color": "#006FA6",
        "bbox": {
          "top": 374,
          "left": 1248,
          "height": 22,
          "width": 33
        },
        "instanceURI": "https://api.labelbox.com/masks/feature/ckkskqn410l530y770svj1z3g?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJja2txdDV5NmFtbm1iMDc0MGpsem03d2RwIiwib3JnYW5pemF0aW9uSWQiOiJja2txdDV5NXVsa3MyMDc1N3RiZHVvZGJ3IiwiaWF0IjoxNjEyODc1MTk3LCJleHAiOjE2MTU0NjcxOTd9.P-MyOgZidmSZSTLfhwpSsRfOaovsReP5MzpDtsrnWs0"
      },
      {
        "featureId": "ckkskshox0luo0y77gozzbuzu",
        "schemaId": "ckksks2sh0lrl0y8rcq970g3u",
        "title": "Alienware",
        "value": "alienware",
        "color": "#A30059",
        "bbox": {
          "top": 436,
          "left": 1901,
          "height": 31,
          "width": 86
        },
        "instanceURI": "https://api.labelbox.com/masks/feature/ckkskshox0luo0y77gozzbuzu?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJja2txdDV5NmFtbm1iMDc0MGpsem03d2RwIiwib3JnYW5pemF0aW9uSWQiOiJja2txdDV5NXVsa3MyMDc1N3RiZHVvZGJ3IiwiaWF0IjoxNjEyODc1MTk3LCJleHAiOjE2MTU0NjcxOTd9.P-MyOgZidmSZSTLfhwpSsRfOaovsReP5MzpDtsrnWs0"
      },
      {
        "featureId": "ckksktu8c0mhq0y8r6a82cjgm",
        "schemaId": "ckkskil300j1g0y8r5kbgguk9",
        "title": "OPPO",
        "value": "oppo",
        "color": "#1CE6FF",
        "bbox": {
          "top": 1101,
          "left": 1837,
          "height": 19,
          "width": 51
        },
        "instanceURI": "https://api.labelbox.com/masks/feature/ckksktu8c0mhq0y8r6a82cjgm?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJja2txdDV5NmFtbm1iMDc0MGpsem03d2RwIiwib3JnYW5pemF0aW9uSWQiOiJja2txdDV5NXVsa3MyMDc1N3RiZHVvZGJ3IiwiaWF0IjoxNjEyODc1MTk3LCJleHAiOjE2MTU0NjcxOTd9.P-MyOgZidmSZSTLfhwpSsRfOaovsReP5MzpDtsrnWs0"
      },
      {
        "featureId": "ckkxvfpv305j00y8k1hvn03e8",
        "schemaId": "ckksks2sh0lrl0y8rcq970g3u",
        "title": "Alienware",
        "value": "alienware",
        "color": "#A30059",
        "bbox": {
          "top": 505,
          "left": 2276,
          "height": 23,
          "width": 92
        },
        "instanceURI": "https://api.labelbox.com/masks/feature/ckkxvfpv305j00y8k1hvn03e8?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJja2txdDV5NmFtbm1iMDc0MGpsem03d2RwIiwib3JnYW5pemF0aW9uSWQiOiJja2txdDV5NXVsa3MyMDc1N3RiZHVvZGJ3IiwiaWF0IjoxNjEyODc1MTk3LCJleHAiOjE2MTU0NjcxOTd9.P-MyOgZidmSZSTLfhwpSsRfOaovsReP5MzpDtsrnWs0"
      }
    ],
    "classifications": []
  },
  ...
}
更新 这就是我根据建议将代码更改为的内容

    for i in range(0, len(data)):
        line = data[i]
        objects = line['Label']['objects']
        classes = [o['title'] for d in data for o in objects]
        print(classes)
这是输出:

['Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', ...
'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard']

['OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', ...
'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO', 'OPPO']

['Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard',  ...
'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard']

['Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', ...
'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard', 'Mastercard']

['Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware', 'Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware', 'Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware', 
...
'Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware']


似乎您应该能够通过列表理解来做到这一点:

titles=[o['title']表示数据中的d,o表示数据中的d['Label']['objects']]
输出(对于包含上述对象的列表):


似乎您应该能够通过列表理解来做到这一点:

titles=[o['title']表示数据中的d,o表示数据中的d['Label']['objects']]
输出(对于包含上述对象的列表):

简单的方法是:

title = []

for j in data['Label']['objects']:
    title.append(j['title'])
输出:

['Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware']
如果数据是dict列表:

title = []

for d in data:
    for obj in d['Label']['objects']:
        title.append(obj['title'])
简单的方法是:

title = []

for j in data['Label']['objects']:
    title.append(j['title'])
输出:

['Mastercard', 'Mastercard', 'Alienware', 'OPPO', 'Alienware']
如果数据是dict列表:

title = []

for d in data:
    for obj in d['Label']['objects']:
        title.append(obj['title'])

检查编辑。我正在为多个JSON条目运行此循环。@很抱歉,我没有说清楚,您应该替换整个循环,包括范围(0,len(数据))中的I的
用这一行。@oo92例如,当我用你的code@oo92您的
数据
值是否与演示中的值不同?请检查编辑。我正在为多个JSON条目运行此循环。@很抱歉,我没有说清楚,您应该替换整个循环,包括范围(0,len(数据))中的I的
用这一行。@oo92例如,当我用你的code@oo92您的
数据
值是否与演示中的值不同?