我在json文件中有一个转义的unicode字符串,例如:
{"word": "\u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043a \u043d\u0430 \u0433\u043e\u0440\u0435 \u0441\u0432\u0438\u0441\u0442\u043d\u0435\u0442",
"glosses": ["when pigs fly, never (lit., \"when the crawfish whistles on the mountain\")"]}}
我想转换这个文件,以便显示正确的unicode。在Python中,我发现了几个建议,例如:
import codecs
# opens a file and converts input to true Unicode
with codecs.open("kaikki.org-dictionary-Russian.json", "rb", "unicode_escape") as my_input:
contents = my_input.read()
# type(contents) = unicode
# opens a file with UTF-8 encoding
with codecs.open("utf8-dictionary.json", "wb", "utf8") as my_output:
my_output.write(contents)
我还在不使用“编解码器”的情况下编写了另一个类似的函数,但两者都得到了相同的结果。执行该命令后,我得到:
{"word": "когда рак на горе свистнет",
"glosses": ["when pigs fly, never (lit., "when the crawfish whistles on the mountain")"]}
转义的双引号不再转义,这使得JSON无效。我如何才能避免这种情况?
编辑:我忘了说我有一个jsonlines格式的文件,所以每一行都是一个json对象,以{...}.
感谢所有的帮助!我的最终解决方案:
import json
with open("kaikki.org-dictionary-Russian.json", "r", encoding="utf-8") as input, \
open("utf8-dictionary-4.json", "w", encoding="utf-8") as out:
for line in input:
data = json.loads(line)
json.dump(data, out, ensure_ascii=False)
out.write("\n")
使用json
库处理json数据。它将确保序列化数据是有效的JSON,并且有一些选项用于控制输出,例如缩进的漂亮打印和非ASCII字符,而不进行转义。
首先,使用 json.load()
解析数据:
>>> with open("kaikki.org-dictionary-Russian.json", encoding="utf8") as f:
... data = json.load(f)
注意:在Python 3中,不需要使用< code>codecs库来读/写文件。只需在内置的< code>open函数中指定文件编码即可。
再次序列化数据,现在使用< code >确保_ascii选项,这导致转义序列的使用最少(只有双引号、换行符和制表符被IIRC转义):
>>> with open("utf8-dictionary.json", "w", encoding="utf8") as f:
... json.dump(data, f, ensure_ascii=False)
嗨,我在Python中将utf-8 json转换成unicode escape json时遇到了一些问题 我知道如何将utf-8.txt转换为unicodeescape.txt 但是,我在Python中使用json模块时遇到了上面应用的问题,如下所示 它保存得很好,但是,当涉及到json中的双引号(“)时,它会自动添加双反斜杠(\\),因此unicode-esc.json文件在调用python脚本
问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str
问题内容: 我在Java中的字符串变量中具有以下值,该字符串变量具有如下编码的UTF-8字符 代替 (假设我无法控制如何将此值分配给此字符串变量) 现在如何正确转换(编码)并将其存储回String变量中? 我发现以下代码 但这会返回,但我要返回。 编辑: 一些其他信息。 当我使用我得到 我不确定什么是正确的术语(UTF-8或unicode)。 问题答案: 尝试 来自Apache Commons L
在JSON中,Unicode字符可以使用表示法进行转义。我假设显然是指十六进制的Unicode代码点。 但由于只有4位数字,这是否意味着无法转义
本文向大家介绍js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码,包括了js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码的使用技巧和注意事项,需要的朋友参考一下 最近看不少在线工具里面都有一些编码转换的代码,很
问题内容: 当我尝试使用“ unicode(head.contents [3])”获取标签的内容时,我得到类似于以下的输出:“ Christensen Sk \ xf6ld”。我希望转义序列作为字符串返回。如何在python中做? 问题答案: 假设Python将名称视为普通字符串,则首先必须将其解码为unicode: 实现此目的的另一种方法: 注意字符串前面的“ u”,表示它是未编码的。如果进行打