gpt4 book ai didi

Python SQL 单元交互

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:37 26 4
gpt4 key购买 nike

我正在使用 Python 尝试收集几个不同时间间隔的收盘价,将其保存在数据库中,然后计算收盘价的变化。这是我的代码:

def database_populate(symbol, interval):
base_url = "https://www.binance.com/api/v1"
url_klines = "/klines"
end_time = requests.get('{}/time'.format(base_url)).json()['serverTime']
start_time = end_time - 360000
kln = requests.get('{a}{b}?symbol={c}&interval={d}&startTime={e}&endTime={f}'.format(a = base_url, b = url_klines, c = symbol, d = interval, e = start_time, f = end_time)).json()
db = sqlite3.connect('database.db')
cursor = db.cursor()
cr_db = """
CREATE TABLE EOSBTC_symbol (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
EPOCH_TIME INTEGER NOT NULL,
CLOSE_PRICE FLOAT,
CHANGE FLOAT )
"""
cursor.execute(cr_db)

for i in range(len(kln)):
lst = [kln[i][0], kln[i][4]]
cursor.execute("""INSERT INTO EOSBTC_symbol (EPOCH_TIME, CLOSE_PRICE) VALUES (?, ?)""", (lst[0], lst[1]))

db.commit()
db.close()


database_populate("EOSBTC", "1m")

这是用 EOSBTC 对在特定时间段内的收盘价填充数据库。我想计算两个连续行之间收盘价的变化。我是否需要使用 ID 或纪元时间,或者还有另一种更优雅的方式?请记住,此数据库将不断更新,因此 ID 和 EPOCH_TIME 会随时间变化,我想在从 Binance API 填充这些单元格后立即计算 CHANGE 字段。

这是目前数据库的内容:

DB Content

例如,对于第 6 行,CHANGE 将等于 0.00082563 - 0.00082587,对于第 5 行,CHANGE 将等于 0.00082587 - 0.00082533,依此类推。

最佳答案

  1. 如果您需要在 python 中计算收盘价的变化并仅将其保存在 python 运行时,您应该简单地使用一个变量来表示前一行的值。
  2. 如果您想将其存储在数据库中,您可以使用一个小程序来执行所有计算并插入数据,包括新计算的差异。
  3. 如果您希望每次都从数据库中检索值,您可以使用类似 TOP 函数的功能,具体取决于您使用的 RDBMS。

关于Python SQL 单元交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48927972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com