Ich erstellte das Python-Skript zum Exportieren von CSV aus Mongodb. es hat nicht sehr gut funktioniert, weil es nicht alle Daten in den Feldern von mongodb exportiert hat. Ich benutze get-Methode, weil einige Datensätze in Sammlungen fehlen.Python Get-Methode exportiert nicht alle Daten in CSV-Datei
mongodb Beispiel:
"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"
}
]
der Python-Skript:
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)
das Problem ist es die zweite Platte (Position: "Pferdetrainer 2") überspringt in Erfahrung Feld. Schätzen Sie für jede Hilfe, Danke