错误:使用pymongo(pandas)将CSV文件导入mongoDB



我有一个小代码要用来导入数据。但我无法指定pd.read_csv的属性。它是基于Youtube上的视频制作的。绝对是新手,如果你修复了代码,我将不胜感激。

我的错误


Collection:  Confirmed_global_narrow
Traceback (most recent call last):
AttributeError: list' object has no attribute 'encode'

请问,我做错了什么?

try:
import pymongo
from pymongo import MongoClient
import pandas as pd
import json
except Exception as e:
print("Some Modules are Missing ")

class MongoDB(object):
def __init__(self, dBName=None, collectionName=None):
self.dBName = dBName
self.collectionName = collectionName
self.client = MongoClient("localhost", 27017)
self.DB = self.client[self.dBName]
self.collection = self.DB[self.collectionName]
print("Collection: " ,collectionName) 
def InsertData(self, path = None, parse_dates = None, dtype = None, skiprows = None):
df = pd.read_csv(path, parse_dates, dtype, skiprows)
data = df.to_dict('records')
self.collection.insert_many(data)
print("All the Data has been Exported to Mongo DB Server")
if __name__ == "__main__":

mongodb = MongoDB(dBName = 'CovidModel', collectionName='Confirmed_global_narrow')
mongodb.InsertData(path = "https://data.humdata.org/hxlproxy/data/download/time_series_covid19_confirmed_global_narrow.csv?dest=data_edit&filter01=merge&merge-url01=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2Fe%2F2PACX-1vTglKQRXpkKSErDiWG6ycqEth32MY0reMuVGhaslImLjfuLU0EUgyyu2e-3vKDArjqGX7dXEBV8FJ4f%2Fpub%3Fgid%3D1326629740%26single%3Dtrue%26output%3Dcsv&merge-keys01=%23country%2Bname&merge-tags01=%23country%2Bcode%2C%23region%2Bmain%2Bcode%2C%23region%2Bsub%2Bcode%2C%23region%2Bintermediate%2Bcode&filter02=merge&merge-url02=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2Fe%2F2PACX-1vTglKQRXpkKSErDiWG6ycqEth32MY0reMuVGhaslImLjfuLU0EUgyyu2e-3vKDArjqGX7dXEBV8FJ4f%2Fpub%3Fgid%3D398158223%26single%3Dtrue%26output%3Dcsv&merge-keys02=%23adm1%2Bname&merge-tags02=%23country%2Bcode%2C%23region%2Bmain%2Bcode%2C%23region%2Bsub%2Bcode%2C%23region%2Bintermediate%2Bcode&merge-replace02=on&merge-overwrite02=on&filter03=explode&explode-header-att03=date&explode-value-att03=value&filter04=rename&rename-oldtag04=%23affected%2Bdate&rename-newtag04=%23date&rename-header04=Date&filter05=rename&rename-oldtag05=%23affected%2Bvalue&rename-newtag05=%23affected%2Binfected%2Bvalue%2Bnum&rename-header05=Value&filter06=clean&clean-date-tags06=%23date&filter07=sort&sort-tags07=%23date&sort-reverse07=on&filter08=sort&sort-tags08=%23country%2Bname%2C%23adm1%2Bname&tagger-match-all=on&tagger-default-tag=%23affected%2Blabel&tagger-01-header=province%2Fstate&tagger-01-tag=%23adm1%2Bname&tagger-02-header=country%2Fregion&tagger-02-tag=%23country%2Bname&tagger-03-header=lat&tagger-03-tag=%23geo%2Blat&tagger-04-header=long&tagger-04-tag=%23geo%2Blon&header-row=1&url=https%3A%2F%2Fraw.githubusercontent.com%2FCSSEGISandData%2FCOVID-19%2Fmaster%2Fcsse_covid_19_data%2Fcsse_covid_19_time_series%2Ftime_series_covid19_confirmed_global.csv", 
parse_dates = ["Date"])

mongodb = MongoDB(dBName = 'CovidModel', collectionName='Beds')
mongodb.InsertData(path="https://raw.githubusercontent.com/hf2000510/infectious_disease_modelling/master/data/beds.csv")

您向read_csv()传递的参数不正确。如果您没有指定参数名称,它们将按照文档中的顺序传递。

你可能会用来解决你的问题

df = pd.read_csv(path, parse_dates=parse_dates, dtype=dtype, skiprows=skiprows)

最新更新