<p>下面是一个使用as400、sqlalchemy和pandas的示例。
这个例子需要一堆csv文件,并使用pandas/sqlalchemy插入。
仅适用于windows,在linux上i系列odbc驱动程序segfaults(Centos 7和Debian 9 x68_64)</p>
<p>客户端是Windows 10。</p>
<p>我的as400版本是7.3</p>
<p>Python是2.7.14</p>
<p>与pip一起安装:pandas、pyodbc、imb_db_sa、sqlalchemy</p>
<p>您需要从<a href="ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si66062/" rel="nofollow noreferrer">ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si66062/</a>安装i access for windows</p>
<p>另外,@JohnY在pyodbc.py上的修改
C: \Python27\Lib\site packages\sqlalchemy\diactals\ibm_db_sa\pyodbc.py
将第99行更改为</p>
<pre><code> pyodbc_driver_name = "IBM i Access ODBC Driver"
</code></pre>
<p>odbc驱动程序更改了它的名称。</p>
<pre><code>#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from sqlalchemy import create_engine
import glob
csvfiles=(glob.glob("c:/Users/nahum/Documents/OUT/*.csv"))
df_csvfiles = pd.DataFrame(csvfiles)
for index, row in df_csvfiles.iterrows():
datastore2=pd.read_csv(str(row[0]), delimiter=',', header=[0],skipfooter=3)
engine = create_engine('ibm_db_sa+pyodbc://DB2_USER:PASSWORD@IP_SERVER/*local')
datastore2.to_sql('table', engine, schema='SCHEMA', chunksize=1000, if_exists='append', index=False)
</code></pre>
<p>希望有帮助。</p>