繁体   English   中英

HTTP 尝试将 csv 文件从 url 插入到 Z685A5F7CC75B4796F6C6EZFZ 文件时出错

[英]HTTP Error when trying to insert csv file from a url to mongodb

我正在尝试使用 python 插入脚本将数据从 csv 文件发送到 mongodb。 我得直接通过url获取这个文件,也就是不是本地的。 我正在使用 pandas 中的 pymongo 和 read_csv 进行插入,但我得到了“ HTTP 错误 500:内部服务器错误”。 我想这与编码或 header 有关。 我尝试了几种组合,但都没有奏效。 这是代码:

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

import requests
import urllib.request
from urllib.error import HTTPError


class MongoDB(object):

    def __init__(self, dBName=None, collectionName=None):

        self.dBName = dBName
        self.collectionName = collectionName

        #self.client = MongoClient("localhost", 27017)
        self.client = MongoClient("<connection_string>")

        self.DB = self.client[self.dBName]
        self.collection = self.DB[self.collectionName]



    def InsertData(self, path=None):

        df = pd.read_csv(path, sep=";", encoding='UTF-8', header="infer")
        data = df.to_dict('records')

        self.collection.insert_many(data, ordered=False)
        print("All the Data has been Exported to Mongo DB Server .... ")

if __name__ == "__main__":
    mongodb = MongoDB(dBName = 'vacinacao-covid', collectionName='teste')
    mongodb.InsertData(path = "https://www.saopaulo.sp.gov.br/wp-content/uploads/2021/04/20210420_percentual_primeira_dose.csv")

UTF-8 对我不起作用。 我改用 latin-1。

import pandas as pd
import requests
from io import BytesIO


user_agent = {'User-agent': 'Mozilla/5.0'}
path = "https://www.saopaulo.sp.gov.br/wp-content/uploads/2021/04/20210420_percentual_primeira_dose.csv"
r = requests.get(path, headers=user_agent)
f = BytesIO(r.content)
df = pd.read_csv(f, sep=";", encoding='latin-1', header="infer")
print(df)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM