【问题标题】:Strange formatting on append - JSON附加的奇怪格式 - JSON
【发布时间】:2022-01-11 15:49:07
【问题描述】:

最近我一直在做一个项目,我需要将一个字典列表附加到我现有的 JSON 文件中。但它的行为有些奇怪。

这是我所拥有的:

def write_records_to_json(json_object):
    with open("tracker.json", "r+") as f:
        json_file = json.load(f)
        json_file.append(json_object)
        print(json_file)

这是我要附加的对象(对象是这样格式化的):

[
    {
        "file": "dnc_complaint_numbers_2021-12-03.csv",
        "date": "2021-12-03"
    }
]

这是我得到的(注意结尾): 请原谅我的可读性不够。

[{'file': 'dnc_complaint_numbers_2021-12-01.csv', 'date': '2021-12-01'}, {'file': 'dnc_complaint_numbers_2021-12-02.csv', 'date': '2021-12-02'}, '[\n    {\n        "file": "dnc_complaint_numbers_2021-12-03.csv",\n        "date": "2021-12-03"\n    }\n]']

谁能告诉我这是为什么以及如何解决它?非常感谢。

【问题讨论】:

标签: python json dictionary


【解决方案1】:

从您的代码和输出中,我们可以推断出json_object 指的是一个字符串。此字符串包含 JSON。 json_file 不是 JSON,它是一个从 JSON 反序列化的列表。

如果你想将json_object 添加到json_file 你应该首先反序列化前者:

json_file.extend(json.loads(json_object))

您还想在此处使用extend 而不是append,因此它与其余数据处于同一级别。

【讨论】:

  • 谢谢!这帮助我解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2020-11-16
  • 2011-05-06
相关资源
最近更新 更多