【发布时间】:2020-04-01 12:01:19
【问题描述】:
我有一个包含不同类型字符的 JSON 文件。我将它用于 NLP 项目。我需要将文本加载到字典中,然后将键原样写入另一个文件以进行一些额外的预处理。有问题的文本是数字、字母字符和代码点的混合体。问题是,当我将字典写入文本文件时,如果有意义的话,它会将代码点更改为字符串。所以 \u00a1 变成 ¡ 和 \u00a2 变成 ¢ 等等。我想写在代码点中,而不是它们的字符串表示形式。
我要处理的相关文件在这里:https://storage.googleapis.com/gpt-2/encoder.json
这是我用来将字典写入文本文件的代码。
import os
import json
with open(r" file/path/to/encoder.json") as f:
encoder = json.load(f)
file1 = open(r"file/path/to/file.txt","a", encoding="utf-8")
for key in encoder:
file1.write(key + " " + str(encoder[key]) + '\n')
如何在不更改代码点的情况下编写代码点?
【问题讨论】:
-
您希望代码点像文字字符串一样编写。 IE
print(r'\u00a2')如果是这样,通过在字符串之前给出字母 r 告诉 python 将其视为原始字符串并且不解释任何特殊含义 -
链接已损坏,这就是不鼓励在 SO 上使用链接的原因。在问题本身中发布实际文档的样本。
-
最好的方法是使用酸洗。有了它,您可以检索原始数据,无论您在文件中存储什么类型的数据,加载时都会收到相同类型的数据
-
@GurkiratSingh 除非您担心安全性,并且数据不受信任。阅读pickle docs 中的重大警告。
标签: python python-3.x unicode