【问题标题】:Changing Response type to str, bytes, or os.Pathlike将响应类型更改为 str、bytes 或 os.Pathlike
【发布时间】: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


    【解决方案1】:

    你需要阅读onlinedata.text

    with open(onlinedata.text, 'r') as f:
        next(f)
        cur.copy_from(f,'real_estate_data',sep=',')
    

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 2018-11-08
      • 2018-11-11
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      相关资源
      最近更新 更多