繁体   English   中英

从 Sqlite 检索列数据

[英]Retrieving Column data from Sqlite

我从网上下载的数据创建了一个 db 文件。 我使用以下代码创建数据库:

    kiwoom.ohlcv = {'date': [], 'open': [], 'high': [], 'low': [], 'close': [], 'volume': []}
    df = pd.DataFrame(kiwoom.ohlcv, columns=['open', 'high', 'low', 'close', 'volume'], index=kiwoom.ohlcv['date'])

    con = sqlite3.connect("c:/Users/Runner/Data/Stock/Dayprice_kosdaq_filtered.db")
    df.to_sql(stock_code, con, if_exists='replace')

在这里,根据pandas.DataFrame文档,dataframe的索引数据应该已经成为数据库中的另一列:

索引:布尔值,默认为真
将 DataFrame 索引写入列。 使用 index_label 作为表中的列名。

然而问题是,如果我尝试使用 SELECT 调用索引列下的数据:

con1 = sqlite3.connect("c://Users//Runner//Data//Stock//Dayprice_kosdaq_filtered.db")
cursor = con1.cursor()
cursor.execute("SELECT 'index' FROM '101360' WHERE close = 24850")
table_list = cursor.fetchall()
print(table_list)

我得到以下结果,其中 '101360' 是表名,而 close 是一列:

runfile('C:/Users/Runner/Spyder Projects/Stocks/Get Data/untitled1.py', wdir='C:/Users/Runner/Spyder Projects/Stocks/Get Data') [('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ( 'index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), (' index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index ',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index' ,), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index', ), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',) , ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('index',), ('索引',), ('索引',)]

当我通过 DB 浏览器检查索引列的值时,我确实看到了日期的 TEXT 值,但是当我尝试通过 python 代码访问它时,我得到了“索引”值。 出了什么问题,我该如何解决? 谢谢

您可以尝试用 [] 覆盖查询中的列(索引,关闭),因为两列都是关键字,如下所示:

con1 = sqlite3.connect("c://Users//Runner//Data//Stock//Dayprice_kosdaq_filtered.db")
cursor = con1.cursor()
query = cursor.execute("SELECT [index] FROM '101360' WHERE [close] = 24850")
client_df = pd.DataFrame(query)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM