繁体   English   中英

Pathlib read_text 作为字符串文字

[英]Pathlib read_text as a string literal

我正在尝试从 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 到字符串的转换使用单引号,这在 JSON 中是不合法的。 您需要将其转换回 JSON:

    with path.open(mode="w+") as working_file:
        json.dump( [value], working_file )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM