我正在尝试在我的Teradata数据库上执行一个简单的'SELECT'查询,但是我的列名被切成两半。当我尝试将返回的数据转换为字典时,我发现所有信息均未正确编码。信息来自公共星球大战API:https://swapi.co/
这里是我在控制台中的结果的屏幕截图:
这里是我的代码:
from database import Utils
import pyodbc
connection_string = "driver={Teradata};dbcname=my_database;DefaultDatabase=something;uid=my_user;pwd=password;charset=utf8;"
oConnexion = pyodbc.connect(connection_string, autocommit=True)
import pandas as pd
query="SELECT * FROM DEV_EDW.STAR_WARS_CHARACTERS;"
oConnexion.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
oConnexion.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
oConnexion.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
oConnexion.setencoding(encoding='utf-8')
data=pd.read_sql(query, oConnexion)
print(data)
for col in data.columns:
print(col)
dictionary = data.to_dict('records')
print(dictionary)
我已经尝试过:
这里是点冻结的结果的一部分:
pandas==0.25.3
pyodbc==4.0.27
python-apt==1.6.4
python-dateutil==2.6.1
python-debian==0.1.32
任何帮助赞赏