如何从Mongodb中将数据导出到csv时如何删除子字段的名称,u中的字母和括号?如何删除u字母并仅在python中显示sub fieild的值
工作流程采集样品:
{
"_id": ObjectID("54b98bca7c1f57d85021f308"),
"requiredLanguages": [
"en"
],
"isDeleted": false,
"name": {
"en": "Test Workflow"
},
"isEditable": false,
"date": {
"created": ISODate("2016-07-21T23:06:38.748Z")
}
}
如果我把python脚本“创建日期”,它显示了,我不想要的一切。
蟒蛇2.7脚本:
import csv
cursor = db.workflows.find({}, {'_id': 1, 'requiredLanguages': 1, 'isDeleted': 1, 'name': 1, 'isEditable':1, 'date.created':1 })
with open ('workflows.csv', 'w') as outfile:
fields = ['_id', 'requiredLanguages', 'isDeleted', 'name', 'isEditable', 'date']
write = csv.DictWriter(outfile, fieldnames=fields)
write.writeheader()
for x in cursor:
write.writerow(x)
的CSV样本:
_id,requiredLanguages,isDeleted,name,isEditable,date
5318cbd9a377f52a6a0f671f,[u'en'],False,{u'en': u'Default Workflow'},False,"{u'created': datetime.datetime(2016, 7, 21, 23, 6, 38, 748000)}"
54b98bca7c1f57d85021f308,[u'en'],False,{u'en': u'Test Workflow'},False,"{u'created': datetime.datetime(2016, 7, 21, 23, 6, 38, 748000)}" 如果我改变 '日期',以不同的名称
,它没有工作。 我想获得'date.created'下的值。也如何删除你的信?有人可以帮我删除u字母和“date.created”的名字。非常感谢
+0
您在'requiredLanguages'字段中有一个列表,'name'中有一个'dict'。你需要弄清楚你想如何让它们出现在'.csv'文件中,然后_“flatten”_这些字段,所以它们在调用'write.writerow(x)'之前显示为一个字符串'例如,对于'list'('requiredLanguages'字段),你可以看看这个:http://stackoverflow.com/questions/5618878/how-to-convert-list-to-string –
+0
Python 2.x我假设?你能添加一个额外的标签吗? –
+0
我想让值出现在CSV中,它就像_id,requiredLanguages,isDeleted,name,isEditable,date 5318cbd9a377f52a6a0f671f,en,False,'Default Workflow,False',2016,7,21,23,6,38, 748000我不需要出现在CSV文件中的括号,引号,“en”,“{u'created':datetime.datetime”。 –