繁体   English   中英

Python yaml 按原样转储表情符号

[英]Python yaml dump emojis as is

我正在使用python 3.9.5PyYaml 5.4.1

我有一个包含以下内容的文件t.yml

- ⬆️😢

我写了一个简单的python代码来读取yaml文件并将其转储回来。

import yaml

with open("t.yml") as file:
    con = yaml.safe_load(file)
    print(con)
    with open("t.yml","w") as file:
        yaml.dump(con,file)

代码的输出是:

['⬆️😢']

转储yaml后, t.yml文件变成这样:

- "\u2B06\uFE0F\U0001F622"

如何以完全相同的格式转储表情符号,我加载了它们?

通常,YAML 在加载文件时会丢失信息(请参阅此问题),因此您不能总是完全按照写入的方式转储它,因为有关如何写入的信息已丢失。

在这种情况下,解决方案是设置allow_unicode

import sys,yaml

input = """
- ⬆️😢
"""

con = yaml.safe_load(input)
yaml.dump(con,sys.stdout, allow_unicode=True)

输出:

- ⬆️😢

暂无
暂无

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

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