1

Excel ファイルからデータを読み取り、postgresql データベースに書き込むスクリプトを作成しています。Excelファイルからデータを読み取り、各行データを文字列の配列として保存しました。

私はいくつかのことを試しました

  for x in range(len(sh.columns)):
        i = users.insert()
        i.execute({sh.columns[x] : sh.values[0][x]})

これは、ユーザーが参照した postgreSQL データベースで編集している Excel シートとテーブルへの参照です。

私も試してみました

'INSERT INTO users VALUES %s'%(tuple(sh.values[0])

さらにいくつかのバリエーションがあります。

4

2 に答える 2

1

これが私の解決策です。これは私が使用したもので、魅力のように機能します!

import pandas as pd
import sqlalchemy as sql
import sqlalchemy.orm as orm



sh = pd.ExcelFile("ExcelFileName").parse("SheetName")
db=sql.create_engine('DBtype://username:password@localhost:postnumber/dbname')
metadata = sql.schema.MetaData(bind=db,reflect=True)



table = sql.Table('TableinDB', metadata, autoload=True)

class Row(object):
 pass
rowmapper = orm.Mapper(Row,table)
print table.columns

Sess = orm.sessionmaker(bind = db)
session = Sess()

for x in range(len(sh.values)):
 row1 = Row() 
 row1.field1 = sh.values[x][0]
 row1.field2 = sh.values[x][1]
 #Add as many fields as you want
session.add(row1)
#forloop ends
session.commit()
于 2013-06-22T00:59:21.577 に答える