hol*_*lys 12 python encoding json yaml
我有一个这样的.json文件(命名为meta.json):
{
"main": {
"title": "????????",
"description": "????????"
}
}
Run Code Online (Sandbox Code Playgroud)
我想将它转换为一个.yaml 文件(命名为meta.yaml),如:
title: "????????"
description: "????????"
Run Code Online (Sandbox Code Playgroud)
我所做的是:
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
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,我得到的是:
{description: "\u4ECA\u65E5\u306F\u96E8\u304C\u964D\u3063\u3066", title: "\u4ECA\u65E5\
\u306F\u96E8\u304C\u964D\u3063"}
Run Code Online (Sandbox Code Playgroud)
为什么?
sho*_*oma 18
pyyaml.dump()具有"allow_unicode"选项,默认为None,输出中的所有非ASCII字符都被转义.如果allow_unicode = True则写入原始unicode字符串.
yaml.dump(data, ff, allow_unicode=True)
Run Code Online (Sandbox Code Playgroud)
奖金
json.dump(data, outfile, ensure_ascii=False)
Run Code Online (Sandbox Code Playgroud)
Sau*_*ani 10
这对我有用:
#!/usr/bin/env python
import sys
import json
import yaml
print yaml.dump(yaml.load(json.dumps(json.loads(open(sys.argv[1]).read()))), default_flow_style=False)
Run Code Online (Sandbox Code Playgroud)
所以我们正在做的是:
按照如何在Python中从JSON获取字符串对象而不是Unicode对象来处理unicode?
| 归档时间: |
|
| 查看次数: |
36526 次 |
| 最近记录: |