from pandas import DataFrame
import pyodbc
cnxn = pyodbc.connect(databasez)
cursor.execute("""SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez""")
DF = DataFrame(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)
这可以填充我的pandas DataFrame.但我怎么得到
DF.columns = ['ID', 'Nickname', 'Residence']
Run Code Online (Sandbox Code Playgroud)
直接从光标?该信息是否完全存储在光标中?
我有以下代码:
query = """
SELECT Coalesce((SELECT sp.param_value
FROM sites_params sp
WHERE sp.param_name = 'ci'
AND sp.site_id = s.id
ORDER BY sp.id DESC
LIMIT 1), -1) AS ci
FROM sites s
WHERE s.deleted = 0
AND s.id = 10
"""
site = db_session.execute(query)
# print site
# <sqlalchemy.engine.result.ResultProxy object at 0x033E63D0>
site = db_session.execute(query).fetchone()
print site # (u'375')
print list(site) # [u'375']
Run Code Online (Sandbox Code Playgroud)
为什么SQLAlchemy会为此查询返回元组而不是dicts?我想使用以下样式来访问查询的结果:
print site.ci
# u'375'
Run Code Online (Sandbox Code Playgroud) 我正在使用SQLAlchemy查询sqlite数据库,如下所示:
import db
...
results = session.query(table).all()
for result in results:
print result
print "how to print column name?"
Run Code Online (Sandbox Code Playgroud)
这是db类的片段:
class Device(Base):
__tablename__ = "devices"
name = Column(String(250), primary_key=True)
location = Column(String(250), nullable=False)
def __init__(self, name, location):
self.name = name
self.location = location
Run Code Online (Sandbox Code Playgroud)
尝试根据文档抛出的结果对结果使用“ .column_descriptions”时出现“'list'对象没有属性'column_descriptions'”错误。
动态获取列名和值的正确方法是什么?我想要这个,所以我可以构建一个函数来处理所有查询的json转换,而不是到处重复代码。