我想从PyOdbc Cursor中检索完全引用的列名.例如,假设我有2个简单的表格:
Table_1(Id, < some other fields >)Table_2(Id, < some other fields >)我想要检索已连接的数据
select * from Table_1 t1, Table2 t2 where t1.Id = t2.Id
Run Code Online (Sandbox Code Playgroud)
使用pyodbc,像这样:
query = 'select * from Table_1 t1, Table2 t2 where t1.Id = t2.Id'
import pyodbc
conn_string = '<removed>'
connection = pyodbc.connect(conn_string)
cursor = connection.cursor()cursor.execute(query)
Run Code Online (Sandbox Code Playgroud)
然后我想获得列名:
for row in cursor.description:
print row[0]
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,我会得到Id两次我不想要的.理想情况下,我能得到t1.Id并且t2.Id在输出中.
我想到的一些解决方案(以及为什么我真的不想实现它们):
select *一组命名列替换) - 如果我也有,我会这样做,但是对于测试工具来说似乎有些过分有没有更好的办法?任何意见,将不胜感激.
小智 12
# columns in table x
for row in cursor.columns(table='x'):
print row.column_name
Run Code Online (Sandbox Code Playgroud)
www.PyOdbc wiki API文档非常有用
我是这样做的。
import pyodbc
connection = pyodbc.connect('DSN=vertica_standby', UID='my_user', PWD='my_password', ansi=True)
cursor = connection.cursor()
for row in cursor.columns(table='table_name_in_your_database'):
print(row.column_name)
Run Code Online (Sandbox Code Playgroud)
您必须通过两个文件设置 DSN(数据源名称)。odbc.ini 和 odbcinst.ini
| 归档时间: |
|
| 查看次数: |
23934 次 |
| 最近记录: |