如何在JSONObj的末尾添加(“,”,“[”,“])”这样的字符

2024-04-23 21:44:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在 我有一个Python脚本,它生成一个带有无效JSON的文件。 现在我想操作这个JSON文件,通过在每个对象之间添加逗号(在文件的开头是“[”,在结尾是“]”),使它成为一个有效的JSON文件。 有没有一种方法可以单独使用JSON来实现这一点,还是必须找到一种与其他读写函数一起使用的方法?在

Exsample公司_文件.json公司名称:

    {
    "firstName": "Bidhan",
    "lastName": "Chatterjee",
    "age": 40,
    "email":"bidhan@example.com"
    }
    {
    "firstName": "hanbid",
    "lastName": "jeeChatter",
    "age": 10,
    "email":"example@bidhan.com"
    }
     .... 
    n times

新的_文件.json公司名称:

^{pr2}$

在 这是生成这个JSON文件的函数。我不想碰其他生成str的代码。在

data = json.loads(str)
    with open('Example_File.json','ab')as outfile:
        json.dump(data, outfile, indent=2)

到目前为止,我还没有解决这个问题的主意。所以没有代码示例可以帮助您。在

在 结果应该与新文件类似


Tags: 文件方法函数名称comjsonageexample
3条回答

首先,我不认为有一种方法可以直接将其解析为JSON数组。 但是,如果JSON对象没有嵌套,解析它们的简单方法是拆分字符串:

with open(YOUR_FILE) as jsons_file:
    jsons = [x.strip() + '}' for x in jsons_file.read().split('}')][:-1]

现在可以使用json的库dump或{}将其转储到文件或字符串中

^{pr2}$

或者

^{3}$

您可能需要以字符串的形式读取内容,对其进行操作并将其作为JSON加载。像这样的东西

import json

with open('Example.json','r') as f:
  data = f.read()

data = "[" + data.replace("}", "},", data.count("}")-1) + "]"
json_data = json.loads(data)

您的数据似乎有以0开头的数字,因此可能会出现异常“ValueError”。您可以参考Why is JSON invalid if an integer begins with 0中的问题处理方法

注意:我从“”中手动删除了0示例.json““

你不能吗

words.replace('}','},')

这应该将'}'的所有实例替换为'},'

相关问题 更多 >