假设我有一个类似下面的json文件,请调用它src.json.
{
"main": {
"contenttype": "Document"
},
"dublin": {
"title": "??????",
"description": "",
"creators": [
"????"
],
"created": "2012-04-23 10:09:34.642940"
}
}
Run Code Online (Sandbox Code Playgroud)
我想把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 )
Run Code Online (Sandbox Code Playgroud)
但是,我对结果不满意:
{created: '2010-03-26 09:26:44.002029', creator: ????, description: ' ', title: ??????}
Run Code Online (Sandbox Code Playgroud)
满意的应该是:
created: 2010-03-26 09:26:44.002029
creator: ????
description: ''
title: ??????
Run Code Online (Sandbox Code Playgroud)
然后,我的问题是:
'2010-03-26 09:26:44.002029'有单引号,而title和creator不?如何删除日期周围的单引号?任何一个帮助!
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2349 次 |
| 最近记录: |