Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从json文件中删除方括号_Python_Json_Brackets - Fatal编程技术网

Python 从json文件中删除方括号

Python 从json文件中删除方括号,python,json,brackets,Python,Json,Brackets,我有一个json文件,其结构如下: [{"date_value": "2021-04-01", "boolean_value": false, "string_value": "Any string value", "integer_value": 0}] 我需要用新数据编辑每个元素,但我在最终的json文件中得到了错误和不同的结果 为此,我使用以下代码: date_valu

我有一个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_对象的每个值的末尾使用“逗号”:

错误代码:

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['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_对象的每个值的末尾都使用逗号:

错误代码:

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['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写入时,该元组将转换为列表。

无法复制。对于给定的输入和代码,我得到了一个错误,因为
json_object
是一个列表,而不是一个dict。我猜代码中会有多余的逗号(
);Python将
0,
解释为一个元组,其中包含一个项
(0,)
,然后将其转换为列表
[0]
,并将其写成JSON。类似地,对于其他值-一个额外的
,代码中的
将成为JSON中的
[
..
]
。[{“date\u value”…]表示一个列表。下面我的答案中的示例将使用
JSON\u对象[0]
(即列表的第一个元素)@IODEV来编写列表的内容,不带括号例如,“项目值”,声称它们得到的是
[False]
,而不是
False
。@sabik,你挽救了这一天。问题是传递给json_对象的每个值的末尾都有“逗号”。编辑了问题并在末尾添加了解决方案