假设我有一个如下所示的json文件,称之为src.json
。
{
"main": {
"contenttype": "Document"
},
"dublin": {
"title": "ダウンロード",
"description": "",
"creators": [
"池田大作"
],
"created": "2012-04-23 10:09:34.642940"
}
}
我想使用dublin
中的dst.yaml
将yaml
内容转储到python
。
这是我的代码:
import json
import yaml
with open('src.json') as f:
data = json.load(f)
dump = {'title': data.get('dublin', {}).get('title', ''),
'description': data.get('dublin', {}).get('description', ''),
'creator': data.get('dublin', {}).get('creators',[''])[0],
'created': data.get('dublin', {}).get('created', '')
}
with open('dst.yaml', 'w') as stream:
yaml.safe_dump(dump, stream, allow_unicode=True )
但是,我对结果不满意:
{created: '2010-03-26 09:26:44.002029', creator: 池田大作, description: ' ', title: ダウンロード}
满意的应该是:
created: 2010-03-26 09:26:44.002029
creator: 池田大作
description: ''
title: ダウンロード
然后,我的问题是:
'2010-03-26 09:26:44.002029'
在title
和creator
时没有单引号?
如何删除日期周围的单引号?任何一个帮助!
答案 0 :(得分:6)
default_flow_style=False
。yaml.dump()
醇>
此外,您不需要进行所有重建;你可以直接抛弃现有的都柏林字典:
import json
import yaml
with open('src.json') as f:
data = json.load(f)
with open('dst.yaml', 'w') as stream:
yaml.safe_dump(data.get('dublin', {}), stream, allow_unicode=True,
default_flow_style=False)