首页 > 解决方案 > 如何在 Python 中迭代 Json 文本

问题描述

我正在尝试在 python 中迭代以下 json 内容

json文件:

 {   "taskName":"ENG-12-2020-4-30-1200",
   "datasets":[      {
         "content":"How are you.",
         "isSave":False,
         "order":1,
         "transContent":"How are you."

},
      {
         "content":"How is your family.",
         "isSave":False,
         "order":2,
         "transContent":"How is your family."

},
      {
         "content":"How about your studies?.",
         "isSave":False,
         "order":3,
         "transContent":"How about your studies?"

},
      {
         "content":"How about your work.",
         "isSave":False,
         "order":4,
         "transContent":"How about your work."

},

预期输出应在每个“transContent”之后提供如下:
你好吗
你的学习怎么样?
你的工作怎么样。

我尝试使用以下代码:

import json

with open('C:/Users/name/iterate-63.json') as f:
  data = json.load(f)
jsonnn_tree = objectpath.Tree(data['taskName'])
print(jsonn_tree)

我无法迭代包含每个“transContent”的元素

有人请帮助我。

标签: pythonjson

解决方案


首先,您的 json 似乎无效。如果它是一个实际的 json 文件Falsefalse并且单引号需要'".

数据.json:

{
    "taskName": "ENG-12-2020-4-30-1200",
    "datasets": [
        {
            "content": "How are you.",
            "isSave": false,
            "order": 1,
            "transContent": "How are you."
        },
        {
            "content": "How is your family.",
            "isSave": false,
            "order": 2,
            "transContent": "How is your family."
        },
        {
            "content": "How about your studies?.",
            "isSave": false,
            "order": 3,
            "transContent": "How about your studies?"
        },
        {
            "content": "How about your work.",
            "isSave": false,
            "order": 4,
            "transContent": "How about your work."
        }
    ]
}

将 json 加载到字典的简单代码:

import json

def open_json(path):
    with open(path, 'r') as file:
        return json.load(file)

data = open_json('./data.json')

print(data)

输出:

{'taskName': 'ENG-12-2020-4-30-1200', 'datasets': [{'content': 'How are you.', 'isSave': False, 'order': 1, 'transContent': 'How are you.'}, {'content': 'How is your family.', 'isSave': False, 'order': 2, 'transContent': 'How is your family.'}, {'content': 'How about your studies?.', 'isSave': False, 'order': 3, 'transContent': 'How about your studies?'}, {'content': 'How about your work.', 'isSave': False, 'order': 4, 'transContent': 'How about your work.'}]}

您现在可以将 json 数据作为 python 字典访问:

print(data['datasets'][0]['transContent'])

输出:

How are you.

推荐阅读