【问题标题】:Python yaml dump emojis as isPython yaml 按原样转储表情符号
【发布时间】:2021-06-09 11:45:00
【问题描述】:

我正在使用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)

代码的输出是:

['⬆️????']

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

- "\u2B06\uFE0F\U0001F622"

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

【问题讨论】:

    标签: python encoding yaml pyyaml


    【解决方案1】:

    通常,YAML 会在加载文件 (see this question) 时丢失信息,因此您不能始终完全按照其写入方式转储它,因为有关其写入方式的信息已丢失。

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

    import sys,yaml
    
    input = """
    - ⬆️?
    """
    
    con = yaml.safe_load(input)
    yaml.dump(con,sys.stdout, allow_unicode=True)
    

    输出:

    - ⬆️?
    

    【讨论】:

      猜你喜欢
      • 2019-01-16
      • 2018-11-04
      • 2018-01-25
      • 2011-12-24
      • 2017-05-27
      • 2015-08-02
      • 2020-05-30
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多