pg8000复制自CSV

2024-06-08 01:21:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在appengine flask应用程序上使用pg8000,这样我就可以处理一个CSV文件并将其插入PSQL实例(托管在AZURE上)。在

为什么我使用pg8000而不是{}?->;因为app engine不支持psycopg2。在

到目前为止,pg8000的文档并没有像psycopg2那样声明一个函数。我还没有找到一个例子可以在某处或任何其他地方实现这一点,包括文档。在

有人知道这是否可能?在


Tags: 文件csv实例文档gtapp应用程序声明
2条回答

正如另一个问题here中建议的那样,在对csv文件应用逻辑之前和使用csv read方法之前,可以使用next方法。在

对不起,我没有在前面的答案中加上补充,但我没有足够的分数。在

我遇到了同样的问题,我用下面的方法解决了这个问题。请注意,对我来说,执行many的正确方法是在cursor对象上,而不是在conn上。在

conn = pg8000.connect(user='username', password='password', host='host', port=5432, database='database name')
cursor = conn.cursor()

command = "INSERT INTO public.salesforce_accounts (field1, field2, field3, field4, field5, field6) VALUES (%s, %s, %s, %s, %s, %s)"
with open('test.csv', 'r') as file:
    next(file)
    data = list(csv.reader(file))
    cursor.executemany(command, data)

看看the source code,似乎没有一种方法可以直接导入csv,代码中似乎也没有任何关于INSERT查询的内置包装器,从而可以

您可以选择手动使用CSV读取器和使用executemany

import csv
import pg8000

conn = pg8000.connect(user="postgres", password="C.P.Snow")
cursor = conn.cursor()

command = 'INSERT INTO book (title) VALUES (%s), (%s) RETURNING id, title'
with open('my-data.csv', 'rb') as fl:
    data = list(csv.reader(fl))
    conn.executemany(command, data)

作为一个警告,根据数据的大小,使用^{}可能更好:

^{pr2}$

相关问题 更多 >

    热门问题