我想獲得一個快速即快速並且不是很多代碼的方式來將csv數據導入到postgres數據庫中。我正在閱讀python使用csvDictreader工作正常。然後,我需要以某種方式生成代碼,將代碼放入表中。我想自動執行此操作,因爲我的表格通常有數百個變量。 (我不想直接讀取到Postgres的,因爲在很多情況下,我必須轉換數據和Python是適合這種模式)使用psycopg2讀取csvData的好方法
這是一些什麼,我已經得到:
import psycopg2
import sys
import itertools
import sys, csv
import psycopg2.extras
import psycopg2.extensions
csvReader=csv.DictReader(open('/home/matthew/Downloads/us_gis_data/statesp020.csv', "rb"), delimiter = ',')
#close.cursor()
x = 0
ConnectionString = "host='localhost' dbname='mydb' user='postgres' password='######"
try:
connection = psycopg2.extras.DictConnection(ConnectionString)
print "connecting"
except:
print "did not work"
# Create a test table with some data
dict_cur = connection.cursor()
#dict_cur.execute("CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);")
for i in range(1,50):
x = x+1
print x
dict_cur.execute("INSERT INTO test (num, data) VALUES(%s, %s)",(x, 3.6))#"abc'def"))
### how to I create the table and insert value using the dictreader?
dict_cur.execute("SELECT * FROM test")
for k in range(0,x+1):
rec = dict_cur.fetchone()
print rec['num'], rec['data']
Ars 謝謝我會試試這個。 馬修 – Matthew 2010-08-26 04:23:17