2024-06-08 01:21:22 发布
网友
我在appengine flask应用程序上使用pg8000,这样我就可以处理一个CSV文件并将其插入PSQL实例(托管在AZURE上)。在
AZURE
为什么我使用pg8000而不是{}?->;因为app engine不支持psycopg2。在
pg8000
到目前为止,pg8000的文档并没有像psycopg2那样声明一个函数。我还没有找到一个例子可以在某处或任何其他地方实现这一点,包括文档。在
有人知道这是否可能?在
正如另一个问题here中建议的那样,在对csv文件应用逻辑之前和使用csv read方法之前,可以使用next方法。在
next
对不起,我没有在前面的答案中加上补充,但我没有足够的分数。在
我遇到了同样的问题,我用下面的方法解决了这个问题。请注意,对我来说,执行many的正确方法是在cursor对象上,而不是在conn上。在
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查询的内置包装器,从而可以
INSERT
您可以选择手动使用CSV读取器和使用executemany:
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)
作为一个警告,根据数据的大小,使用^{}可能更好:
正如另一个问题here中建议的那样,在对csv文件应用逻辑之前和使用csv read方法之前,可以使用
next
方法。在对不起,我没有在前面的答案中加上补充,但我没有足够的分数。在
我遇到了同样的问题,我用下面的方法解决了这个问题。请注意,对我来说,执行many的正确方法是在
cursor
对象上,而不是在conn
上。在看看the source code,似乎没有一种方法可以直接导入csv,代码中似乎也没有任何关于
INSERT
查询的内置包装器,从而可以您可以选择手动使用CSV读取器和使用
executemany
:作为一个警告,根据数据的大小,使用^{} 可能更好:
^{pr2}$相关问题 更多 >
编程相关推荐