【发布时间】:2021-09-03 11:04:48
【问题描述】:
我有大约 500 个带有 cmets 的 json 文件。尝试使用新值更新 json 文件中的字段会引发错误。我设法使用commentjson来删除这样的字符串//一些文本和json文件更新并且没有抛出错误。
但是有大约 100 个带有 cmets 的 json 文件,如下所示:
/*
1. sometext.
i. sometext
ii. sometext
2. sometext
*/
Commentjson 只是在 /* 存在时崩溃。如果我删除 /* 并运行代码,它将工作并更新并删除任何 //。 如何编写一些代码来管理 /* 和 /* */ 之间的所有文本?
这是我当前可以删除的代码 //
with open(f"{i['Location']}\\{file_name}",'r') as f:
json_info = commentjson.load(f) #Gets info from the json file
json_info['password'] = password
with open(f"{i['location_Daily']}\\{file_name}",'w') as f:
commentjson.dump(json_info,f,indent = 4) #updates the password
print("updated")
【问题讨论】:
-
为什么要删除它们?
-
@OlvinRoght 评论甚至不是有效的 JSON,所以大多数 JSON 解析器会在试图读取这些文件时崩溃(并且创建它们的人应该严厉地与他们交谈;)
-
@Iguananaut,有支持 JSON5 标准的 JSON 解析器。
-
@Iguananaut:
commentjson包确实支持 cmets:commentjson (Comment JSON) 是一个 Python 包,可帮助您使用 Python 和 JavaScript 样式的内联 cmets 创建 JSON 文件。只是不是这种风格。 -
我需要删除这些,因为当我尝试更新包含 cmets 的值时,我的代码会引发错误并且不会更新。到目前为止,我已经设法处理了 cmets,但 /* 现在引起了问题。