如何解决Pathlib read_text 作为字符串文字
我正在尝试从 txt 文件中生成一些 json 数据。
txt 文件是从书籍中生成的,使用它们的 ocr,这使得它们不可估量(我不能随意更改我不喜欢的字符,因为它们可能很重要)并且不可靠(ocr 可能出错了,作者可能插入了会干扰我的代码的符号)。
截至目前,我有这个:
output_folder = Path(output_folder)
value = json.loads('{"nome": "' + file_name[:len(file_name)-4] + '","testu": "' + (Path(filename).read_text()) + '"}')
path = output_folder / (file_name[:len(file_name)-4] + "_opare.json")
with path.open(mode="w+") as working_file:
working_file.write("[" + str(value) + "]")
working_file.close()
这向我抛出错误 json.decoder.JSONDecodeError: Invalid control character
,我理解这是由于我的书以 '(引号)开头(是的)引起的。
我读过字符串文字,这似乎与我的情况有关,但我不明白如何使用它们。
我能做什么?
谢谢
解决方法
你为什么要制作一个json来再次解析它?你可以创建一个字典:
value = {
"nome": file_name[:len(file_name)-4],"testu":Path(filename).read_text(),}
,
从字里行间看,JSONDecodeError
实际上并不是来自这段代码,是吗?它来自稍后读取文件的代码。
您无法使用 str(value)
将 dict 写入 JSON 文件。 Python 的 dict-to-string 转换使用单引号,这在 JSON 中是不合法的。您需要将其转换回 JSON:
with path.open(mode="w+") as working_file:
json.dump( [value],working_file )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。