0
Mongodbからcsvをエクスポートするためのpythonスクリプトを作成しました。それはmongodbからのフィールドのすべてのデータをエクスポートしなかったので、うまく機能しませんでした。いくつかのレコードがコレクションで見つからないので、私はgetメソッドを使います。python getメソッドがcsvファイル内のすべてのデータをエクスポートしない
のMongoDBサンプル:
"experience": [
{
"order": null,
"date": {
"to": ISODate("2017-07-04T21:24:31.872Z"),
"from": ISODate("2003-08-16T21:24:31.872Z")
},
"description": "Trained horses for various competitions. ",
"company": "D2 Ranch",
"position": "Horse Trainer"
},
{
"order": null,
"date": {
"to": ISODate("2017-07-04T21:24:31.872Z"),
"from": ISODate("2003-08-16T21:24:31.872Z")
},
"description": "Trained horses for various competitions. 2",
"company": "D2 Ranch 2",
"position": "Horse Trainer 2"
}
]
Pythonスクリプト:経験のフィールドに:
import sys
sys.setdefaultencoding('utf-8')
import codecs
import csv
cursor = db.user_profiles.find ({}, {'_id':1, 'experience.description':1, 'experience.position':1})
with codecs.open('skills.csv','w', encoding='utf-8') as outfile:
fields = ['_id', 'experience.description', 'experience.position']
write = csv.DictWriter(outfile, fieldnames=fields)
write.writeheader()
for x in cursor:
x_id = x['_id']
for y in x.get('experience', {}):
z = {
'_id':x_id,
'experience.description':y.get('description',None),
'experience.position':y.get('position',None)}
write.writerow(z)
問題は、第2のレコード( "馬トレーナー2" の位置)をスキップしています。何か助けを感謝します。ありがとう