【问题标题】:Extracting data from JSON log从 JSON 日志中提取数据
【发布时间】:2022-11-30 04:23:22
【问题描述】:

在编程方面,我是初学者。我正在尝试从 JSON 日志文件中提取元素,但出现错误并且我不知道如何处理它。

import json
with open("/Users/milosz/Desktop/logi.json") as f:
    data = json.load(f)
print(type(data['Objects']))
print(data)

for object in data ['Objects']:
    print(object)

错误:

File "/Users/milosz/PycharmProjects/JsonDataExtracter/Program/Python Exracter.py", line 4, in <module>
    print(type(data['Objects']))
TypeError: list indices must be integers or slices, not str

Process finished with exit code 1

我正在发送下面的日志。

{
    "_id": "635bd4bfc594743ce9b1a5a3",
    "dateStart": "2022-10-28T13:09:28.609Z",
    "dateFinish": "2022-10-28T13:10:23.698Z",
    "method": "customer.file.upsert",
    "request": {
        "Objects": [
            {
                "ERPId": "6915",
                "B24Id": 403772,
                "FileName": "B2B000202",
                "FileContent": "JVBERi0xLjMNJeLjz9MN",
                "B24EntityId": 3334
            }
        ]    

【问题讨论】:

  • 鉴于JSON sn-p,您应该改用data['request']['Objects']
  • 它不工作
  • “它不工作”不帮助我们帮助你。用您现在正在尝试的内容和您遇到的错误更新问题。此外,如果您正在使用您发布的确切 JSON sn-p 进行测试,则它缺少两个关闭的 } 是有效的。
  • 替换为:for object in data ['Objects']: for object in data ['request']['Objects'],我有同样的错误。
  • 这可能意味着您没有向我们展示您的JSON 文件的完整 sn-p。

标签: python json


【解决方案1】:

按照@accdias 的指导,这里有一个代码 sn-p,它弥补了 JSON sn-p 中的空白,并演示了如何访问 Objects 部分:

import json

json_string = """
{
    "_id": "635bd4bfc594743ce9b1a5a3",
    "dateStart": "2022-10-28T13:09:28.609Z",
    "dateFinish": "2022-10-28T13:10:23.698Z",
    "method": "customer.file.upsert",
    "request": {
        "Objects": [
            {
                "ERPId": "6915",
                "B24Id": 403772,
                "FileName": "B2B000202",
                "FileContent": "JVBERi0xLjMNJeLjz9MN",
                "B24EntityId": 3334
            }
        ]
    }
}
"""
json_dict = json.loads(json_string)
print(json_dict["request"]["Objects"])

输出:

[{'ERPId': '6915', 'B24Id': 403772, 'FileName': 'B2B000202', 'FileContent': 'JVBERi0xLjMNJeLjz9MN', 'B24EntityId': 3334}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2015-05-03
    • 2022-10-13
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多