Python 有没有一种更适合用sqlite3更新列的方法?
我正在github上开发一个开源股票分析工具。其中一个关键问题是要有一个包含每只股票所有指标的数据库,并每天更新。我几周前才开始学习编码,所以我是个超级新手 我设法将这段代码用胶带粘在一起,lol从这个请求中导入股票列表,它显示了在最后一天交易的所有股票,并更新了数据库中的列。 钥匙' 现在它只使用了一个csv文件,我正在用它进行测试,但我将添加代码,使json请求成为一个具有相同结构的数据框架,以便一切继续工作。它还可以每天运行并更新所有内容 问题是我将有5张桌子。每个图书馆有一个alpha vantage,每个图书馆大约有2500个专栏。我真的不想为每个指标写2500次Python 有没有一种更适合用sqlite3更新列的方法?,python,sqlite,Python,Sqlite,我正在github上开发一个开源股票分析工具。其中一个关键问题是要有一个包含每只股票所有指标的数据库,并每天更新。我几周前才开始学习编码,所以我是个超级新手 我设法将这段代码用胶带粘在一起,lol从这个请求中导入股票列表,它显示了在最后一天交易的所有股票,并更新了数据库中的列。 钥匙' 现在它只使用了一个csv文件,我正在用它进行测试,但我将添加代码,使json请求成为一个具有相同结构的数据框架,以便一切继续工作。它还可以每天运行并更新所有内容 问题是我将有5张桌子。每个图书馆有一个alpha
stock_name = EXCLUDED.stock_name,
对未来的人们来说,更新和添加额外的功能似乎也会让人恼火
问题
有人能帮我把这段代码弄得更干净一些吗?这样,它就不用手动编写要更新的列,而是循环遍历表中的所有列并更新它们?与我现在更新它们的方式相同,但只是试图取代它现在工作方式的重复性
import pandas as pd
from pandas import DataFrame
from pandas import ExcelWriter
import csv
import sqlite3
### IMPORT CSV ###
stock_csv_file = pd.read_csv (r'C:\Users\home\Desktop\code_projects\FIRE_Dashboard\db\alpha_vantage_active_stocks.csv')
### CHANGING INDEX NAMES FROM CSV TO TABLE NAMES ###
df = pd.DataFrame(stock_csv_file)
df = df.rename(columns = {"symbol":"stock_ticker", "name":"stock_name", "exchange":"stock_exchange", "ipoDate":"stock_ipoDate", "delistingDate":"stock_delistingDate", "status":"stock_status"})
### UPDATING DATABSE WITH SQLITE3 ###
conn = sqlite3.connect('stockmarket.db')
c = conn.cursor()
insert_statement = """
INSERT INTO stocks (stock_ticker,
stock_name,
stock_exchange,
stock_ipoDate,
stock_delistingDate,
stock_status
)
VALUES (?, ?, ?, ?, ?, ?)
ON CONFLICT (stock_ticker) DO UPDATE
SET
stock_name = EXCLUDED.stock_name,
stock_exchange = EXCLUDED.stock_exchange,
stock_ipoDate = EXCLUDED.stock_ipoDate,
stock_delistingDate = EXCLUDED.stock_delistingDate,
stock_status = EXCLUDED.stock_status
"""
for i in range(len(df)):
values = tuple(df.iloc[i])
c.execute(insert_statement, values)
conn.commit()