【发布时间】:2019-10-29 00:25:30
【问题描述】:
使用 Python sqlite3 包,我从 sqlite 数据库(带有三重内连接)中选择了一些行,以便稍后将它们放入 pandas 数据框中。
我尝试运行以下代码从数据库中进行选择:
import pandas as pd
import sqlite3
# connect to the database
conn = sqlite3.connect("C:\Quant\Data_Storage2\sqlite\db\scorecard.db")
conn.text_factory = str
c = conn.cursor()
# create pandas df with data from the sqlite db
sql = '''SELECT MACRO_SA.SERIES_ID, MACRO_SA.COUNTRY_ID, MACRO_SA.DATA,
MACRO_SA.REL_DATE, HF_DATA.DATA
FROM MACRO_SA
INNER JOIN MAP_SERIES ON MAP_SERIES.CUR = MACRO_SA.COUNTRY_ID
INNER JOIN HF_DATA ON MAP_SERIES.CUR = MACRO_SA.COUNTRY_ID
WHERE (MAP_SERIES.CRNCY NOT NULL)
AND (HF_DATA.SERIES_ID = 'bg_cur')
'''
df_to_adj = c.execute(sql).fetchall()
conn.commit()
df_to_adj = pd.DataFrame(df_to_adj, columns=['SERIES_ID', 'COUNTRY_ID', 'DATA', 'REL_DATE', 'FX_RATE'])
我收到以下错误:“sqlite3.OperationalError:无法解码为 UTF-8”。 非常感谢任何帮助。
【问题讨论】: