我得到了一个 .json
文件(命名为 meta.json
),如下所示:
{
"main": {
"title": "今日は雨が降って",
"description": "今日は雨が降って"
}
}
我想将其转换为 .yaml
文件(将其命名为 meta.yaml
),例如:
title: "今日は雨が降って"
description: "今日は雨が降って"
我所做的是:
import simplejson as json
import pyyaml
f = open('meta.json', 'r')
jsonData = json.load(f)
f.close()
ff = open('meta.yaml', 'w+')
yamlData = {'title':'', 'description':''}
yamlData['title'] = jsonData['main']['title']
yamlData['description'] = jsonData['main']['description']
yaml.dump(yamlData, ff)
# So you can see that what I need is the value of meta.json
但遗憾的是,我得到的是:
{description: "\u4ECA\u65E5\u306F\u96E8\u304C\u964D\u3063\u3066", title: "\u4ECA\u65E5\
\u306F\u96E8\u304C\u964D\u3063"}
为什么?
最佳答案
pyyaml.dump()
有一个 allow_unicode
选项,默认为 None
(输出中的所有非 ASCII 字符都被转义)。如果 allow_unicode=True
,则它会写入原始 Unicode 字符串。
yaml.dump(data, ff, allow_unicode=True)
奖金
您可以转储不带编码的 JSON,如下所示:
json.dump(data, outfile, ensure_ascii=False)
关于python - 将 json 转储到 yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941996/