Я новичок в python и mongodb. Я толкая данные из нескольких файлов CSV в MongoDB базу данных, где новые данные должны заменить существующие данные в mongodb.I думаю, что это будет полезно, в то время как увидеть программу, мой код:'Keyerror' при обновлении mongodb
from pymongo import MongoClient
import csv
path = 'C://test//xxx.csv'
csvfile = open(path, "r")
reader = csv.DictReader(csvfile)
mongo_client=MongoClient()
db=mongo_client.production
header= ["Instrument Name", "Date", "High", "Low", "Open", "Close", "Prev Close", "Volume"]
for each in reader:
row={}
k={}
for field in header:
if field=="Instrument Name":
row[field]=each[field]
k[field]=row[field]
print k[field]
elif field=="Date":
row[field]=datetime.datetime.strptime(each[field], "%Y-%m-%d %H:%M:%S")
else:
row[field]=float(each[field])
#row[field]=each[field]
print row
db.test.find_and_modify(query={'Instrument Name':k[field]},sort=1,update={row})
csvfile.close()
выход:
BANKNIFTY15MARFUT
{'Volume': 200.0, 'Prev Close': 18919.8, 'Instrument Name': 'BANKNIFTY15MARFUT', 'High': 19350.2, 'Low': 19350.2, 'Date': datetime.datetime(2015, 1, 13, 9, 15), 'Close': 19350.2, 'Open': 19350.2}
KeyError Traceback (most recent call last)
<ipython-input-1-0f0bc16df1c5> in <module>()
263 print row
264 #row[field]=each[field]
--> 265 db.test.find_and_modify(query={"Instrument Name":k[field]},sort=1,update={row})
266 csvfile.close()
267
KeyError: 'Volume'
Даже если «Volume» присутствует в моей CSV-файл он бросает KeyError для Volume.Assist мне решить эту проблему