擅长:python、mysql、java
<p>回答这个问题可能有点晚,但也许它仍然可以帮助别人。<code>executemany()</code>不是由许多ODBC实现的。其中一个是<code>MySQL</code>。当它们指的是参数序列时,它们的意思是:</p>
<pre><code>parameters=[{'name':'Jorge', 'age':22, 'sex':'M'},
{'name':'Karen', 'age':25, 'sex':'F'},
{'name':'James', 'age':29, 'sex':'M'}]
</code></pre>
<p>对于查询语句,它看起来像:</p>
<pre><code>SQL = INSERT IGNORE INTO WORKERS (NAME, AGE, SEX) VALUES (%(name)s, %(age)s, %(sex)s)
</code></pre>
<p>看起来你到了。不过,我想指出几点,以防万一:
pandas有一个<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html" rel="nofollow noreferrer">to_sql</a>函数,如果您向它提供connector对象,它会插入到db中,并将数据分块。</p>
<p>要从pandas数据帧快速创建参数序列,我发现以下两种方法很有用:</p>
<pre><code># creates list of dict, list of parameters
# REF: https://groups.google.com/forum/#!topic/pydata/qna3Z3WmVpM
parameters = [df.iloc[line, :].to_dict() for line in range(len(df))]
# Cleaner Way
parameters = df.to_dict(orient='records')
</code></pre>