首页 > 解决方案 > 如何使用python解析json数据?

问题描述

一段时间以来,我一直在搞乱 JSON。我想使用python以这种格式获取“box”和“text”的值,有人可以帮我解决这个示例输出:[92,197,162,215,AUTHORS,...!]

{ "form": [ { "box": [ 92,162,197,215], "text": "AUTHORS", "label": "question", "words": [ { "box": [ 92,197,162,215 ],"text": "AUTHORS"} ], "linking": [[0,13]],"id": 0 },


        
import os
import json

# Directory name consisting of json
file = open('033.json')
data = json.load(file)



result = []
for value in data['form']:
    my_dict=[]
    my_dict=value.get('box')
    print(my_dict)
    result.append(my_dict)

标签: pythonjsonpython-3.x

解决方案


好的,您的代码几乎没有问题-

  1. 为什么你的名单被命名my_dict?名称应该表明对象是什么/它包含什么。您的名字恰恰相反,如果将来有人使用该代码,那么很可能会使他们感到困惑。

  2. 为什么要在执行此操作之前初始化列表value.get('box')

至于解决方案,它是一小段代码,需要 2 行代码。

result = []
for form_dict in data['form']:
    result.append(tuple(form_dict[key]
                        for key in ('box', 'text') if key in form_dict))

那段代码将导致:[([92, 162, 197, 215], 'AUTHORS')]根据您提供的数据。
这是假设data['form']列表中可以有更多项目,否则for不需要循环。


推荐阅读