擅长:python、mysql、java
<p>您可以使用<a href="https://www.sqlite.org/lang_expr.html" rel="noreferrer">named parameters</a>:</p>
<pre><code>cur.execute('INSERT INTO Media VALUES (NULL, :title, :type, :genre, :onchapter, :chapters, :status)', values)
</code></pre>
<p>这仍然取决于<code>INSERT</code>语句中的列顺序(那些<code>:</code>只用作<code>values</code>dict中的键),但它至少不必在python端对值进行排序,另外,在<code>values</code>中还可以有其他东西在这里被忽略;如果要将dict中的内容分开存储在多个表中,这可能是有用的。</p>
<p>如果仍要避免重复这些名称,可以在执行伪查询后从<code>sqlite3.Row</code>结果对象或<code>cur.description</code>中提取它们;在执行<code>CREATE TABLE</code>的任何位置附近以python形式保存它们可能更明智。</p>