python-3.x - SAP HANA hdblci 包 - 使用列名获取数据
问题描述
我正在使用该hdbcli
包从 SAP HANA 加载数据。
问题:在加载数据时,我只得到没有 SQL 表实际标题的值行。
当我只加载 3 列时(如下所示),我可以自己手动添加它们,即使它非常难看。当我执行一个Select *
语句时,这变得不可能,因为我真的不想手动添加它们并且可能不知道何时有更改。
问题:是否有标志/命令可以从表中获取列标题?
代码-MRE:
#Initialize your connection
conn = dbapi.connect(
address='00.0.000.00',
port='39015',
user='User',
password='Password',
encrypt=True,
sslValidateCertificate=False
)
cursor = conn.cursor()
sql_command = "select TITLE, FIRSTNAME, NAME from HOTEL.CUSTOMER;"
cursor.execute(sql_command)
rows = cursor.fetchall() # returns only data, not the column values
for row in rows:
for col in row:
print ("%s" % col, end=" ")
print (" ")
cursor.close()
conn.close()
解决方案
感谢@astentx 的评论,我找到了解决方案:
cursor = conn.cursor()
sql_command = "select TITLE, FIRSTNAME, NAME from HOTEL.CUSTOMER;"
cursor.execute(sql_command)
rows = cursor.fetchall() # returns only data, not the column headers
column_headers = [i[0] for i in cursor.description] # get column headers
cursor.close()
conn.close()
result = [[column_header]] # insert header
for row in rows: # insert rows
current_row = []
for cell in row:
current_row.append(cell)
result.append(current_row)
推荐阅读
- django - 如何在 Django Knox 身份验证中验证令牌
- r - 如何使用 sparklyr 热编码/生成虚拟列
- git - SourceTree:撤消推送的提交
- python - 仅使用图片特定部分的颜色进行风格转移
- architecture - 在不同主机(文件系统)之间共享文件的最佳解决方案是什么
- vue.js - 安装 node-sass 时出错
- python - 使用按字长排序的字典翻译熊猫数据框
- ios - VSCode 无法识别 iOS 模拟器
- azure - 如何配置 docker-compose.yml 和 nginx conf 文件以读取外部驱动器?
- azure - Azure Pipeline FTP 文件模式未按预期工作