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
,据我所知,这是由于我的书以 '(引号)开头(是)引起的。
我读过有关字符串文字的内容,这似乎与我的情况相关,但我不知道如何使用它们。
我能做什么?
谢谢
从字里行间看出,JSONDecodeError
实际上并不是来自这段代码,对吗?它来自稍后读取您的文件的代码。
您不能使用 str(value)
将字典写入 JSON 文件。 Python的dict-to-string转换使用单引号,这在JSON中是不合法的。您需要将其转换回 JSON:
with path.open(mode="w+") as working_file:
json.dump( [value], working_file )
为什么你会做一个 json 只是为了再次解析它?你可以只创建一个字典:
value = {
"nome": file_name[:len(file_name)-4],
"testu":Path(filename).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
,据我所知,这是由于我的书以 '(引号)开头(是)引起的。
我读过有关字符串文字的内容,这似乎与我的情况相关,但我不知道如何使用它们。
我能做什么?
谢谢
从字里行间看出,JSONDecodeError
实际上并不是来自这段代码,对吗?它来自稍后读取您的文件的代码。
您不能使用 str(value)
将字典写入 JSON 文件。 Python的dict-to-string转换使用单引号,这在JSON中是不合法的。您需要将其转换回 JSON:
with path.open(mode="w+") as working_file:
json.dump( [value], working_file )
为什么你会做一个 json 只是为了再次解析它?你可以只创建一个字典:
value = {
"nome": file_name[:len(file_name)-4],
"testu":Path(filename).read_text(),
}