擅长:python、mysql、java
<p>我意识到这是一个老问题,但我遇到了同样的要求,我想为未来的读者提供一个替代的解决方案。</p>
<p>正如Josh所指出的,完整的SQL字段名将由<code>JobStatus.__table__.columns</code>返回,因此您将得到<em>jobstatus.id</em>而不是原始字段名。没那么有用。</p>
<p>获取最初定义的字段名列表的解决方案是查看包含完整数据的column对象的<code>_data</code>属性。如果我们看一下<code>JobStatus.__table__.columns._data</code>,它看起来是这样的:</p>
<pre><code>{'desc': Column('desc', Unicode(length=20), table=<jobstatus>),
'id': Column('id', Integer(), table=<jobstatus>, primary_key=True, nullable=False)}
</code></pre>
<p>从这里您可以简单地调用<code>JobStatus.__table__.columns._data.keys()</code>,这给了您一个很好的、干净的列表:</p>
<pre><code>['id', 'desc']
</code></pre>