【发布时间】:2019-05-17 05:09:36
【问题描述】:
我正在尝试自动将 csv 文件下载/复制到 postgres 数据库中,并以这个 kaggle 为例。 我遇到了对象类型的问题,目前它是一个响应,我想让它工作。
我一直在尝试使用 shutil 和复制文件,但到目前为止进展不大。
第 1 步导入库并设置连接
import psycopg2
import requests
import csv
import os
conn = psycopg2.connect(....)
cur = conn.cursor
第二步在数据库中创建表
cur.execute("""
CREATE TABLE real_estate_data(
id integer PRIMARY KEY,
data DATE,
rentorbuy VARCHAR(255),
location VARCHAR(255),
address VARCHAR(255),
zipcode VARCHAR(255),
description VARCHAR(255),
type VARCHAR(255),
nbofrooms DECIMAL(3,2),
surace VARCHAR(255),
floor INT,
price VARCHAR(255),
source VARCHAR(255))
""")
第 3 步。使用请求从 url 获取 csv 并从表中复制该数据(在本例中为房地产数据)
url = 'https://www.kaggle.com/fredgirod/web-crawler-for-real-estate-
market/downloads/Output.csv/3'
onlinedata = requests.get(url, verify =False)
onlinedata.raise_for_status()
with open(onlinedata, 'r') as f:
next(f)
cur.copy_from(f,'real_estate_data',sep=',')
conn.commit()
TypeError:预期的 str、bytes 或 os.PathLike 对象,而不是 Response
【问题讨论】:
标签: python beautifulsoup python-requests psycopg2