从json文件中删除方括号

问题描述

我有一个具有以下结构的 json 文件:

[{"date_value": "2021-04-01","boolean_value": false,"string_value": "Any string value","integer_value": 0}]

我需要用新数据编辑每个元素,但我在最终的 json 文件中得到了错误且不同的结果。

为此,我使用以下代码:

date_value = date.today()
boolean_value = False
string_value = 'Any string value'
integer_value = 0

...以及用于编辑 json 文件:

with open(file_name,'rb') as f:
    mydata = f.read()
    f.close()
            
json_object = json.loads(mydata)

json_object['date_value'] = date_value
json_object['boolean_value'] = boolean_value
json_object['string_value'] = string_value
json_object['integer_value'] = integer_value

with open(file_name,'w') as outfile:
    json.dump(json_object,outfile)

我的问题是,当我打开新的 json 文件时,每个值的格式都不同。

最终文件格式为:

[{"date_value": ['2021-04-01'],"boolean_value": [False],"string_value": ['Any string value'],"integer_value": [0]}]

每个项目值都有方括号。 没有这个括号,我怎么写这个值?

非常感谢

编辑: 感谢@sadik,我已经解决了这个问题。 在原始代码中,我在传递给 json_object 的每个值的末尾使用“逗号”:

错误代码:

json_object['date_value'] = date_value,json_object['boolean_value'] = boolean_value,json_object['string_value'] = string_value,json_object['integer_value'] = integer_value,

正确的代码:

json_object['date_value'] = date_value
json_object['boolean_value'] = boolean_value
json_object['string_value'] = string_value
json_object['integer_value'] = integer_value

解决方法

根据评论中的讨论,问题在于原始代码在传递给 json_object 的每个值的末尾使用逗号:

错误代码:

json_object['date_value'] = date_value,json_object['boolean_value'] = boolean_value,json_object['string_value'] = string_value,json_object['integer_value'] = integer_value,

正确的代码:

json_object['date_value'] = date_value
json_object['boolean_value'] = boolean_value
json_object['string_value'] = string_value
json_object['integer_value'] = integer_value

Python 将带逗号的值解释为包含一项的元组,然后在以 JSON 写出时将其转换为列表。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...