python - Python yaml 按原样转储表情符号
问题描述
我正在使用python 3.9.5
, 和PyYaml 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)
输出:
- ⬆️
推荐阅读
- angular - 使用@Input属性Angular 5传递数组
- c - 原子结构的用途
- qt - StackView 项目被推到边界外
- r - ggplot2 默认蓝色和灰色 - 它们具体是什么“蓝色”和“灰色”
- android - 如何更改 textview 的边距和填充 - kotlin
- c# - 如何关闭 Excel 和工作簿 (C#)?
- oracle - 如何添加系统权限以允许从 Oracle 数据库中的另一个模式更改作业?
- javascript - 如何从 url 中获取父域没有子域
- javascript - 使用 Vue-cli,我在哪里声明我的全局变量?
- ios - 将 React-Native 应用程序部署到 App Store 的指南