我想插入從下面的字典數據庫的結果(我使用PostgreSQL):存儲字典數據庫的使用Python(PostgreSQL的)結果
companies_list = dict(zip(code, short_name))
結果本字典
companies_list = { '00001': 'A', '00002': 'B', '0010': 'Z'}
所以當我試圖插入字典上面到數據庫(代碼)所示::
con = None
con = psycopg2.connect("dbname = 'testdb' user='user'")
cur = con.cursor()
cur.execute("CREATE TABLE companies_info(code TEXT PRIMARY KEY, short_name TEXT)")
query = "INSERT INTO companies_info (code, short_name) VALUES (%(code)s, %(short_name)s)"
cur.executemany(query, companies_list)
con.commit()
con.close()
運行代碼和印刷將顯示以下(作爲一個例子)後
我得到如下:
cur.executemany(query, companies_list)
TypeError: string indices must be integers, not str
任何人都可以解決他的錯誤?
你不需要這樣做,postgres現在支持json。如果你在最新的postgres ... http://initd.org/psycopg/docs/extras.html#json-adaptation –
我剛開始與postgresql和掙扎着,我試着以下:'詛咒。執行(「insert into companies_info(jsondata)values(%s)」, [Json(companies_list)])'....並且它給了ne錯誤的錯誤:'NameError:全局名'Json'沒有定義'bear我剛剛開始使用數據庫。通過自學。 –
我想你從這裏'從psycopg.extras import Json'得到它 - 但我無法測試它..我不知道。有人在這裏糾正我! –