我是一名业务分析师,是Python的新手。 在我的项目之一中,我想从.csv文件中提取数据并将该数据加载到我的MySQL DB(暂存)中。 谁能指导我使用我应该使用的示例代码和框架?
答案 0 :(得分:0)
如果这是格式正确的CSV文件,则可以使用LOAD DATA INFILE MySQL命令,并且不需要任何python。然后,将其加载到暂存区中(不进行处理)后,您可以继续使用所选的sql / etl工具对其进行转换。
https://dev.mysql.com/doc/refman/8.0/en/load-data.html
一个问题是您需要添加所有列,但是即使您有不需要的数据,您也可能更喜欢在登台中加载所有内容。
答案 1 :(得分:0)
创建sqllite的简单程序。您可以阅读CSV文件,并使用dynamic_entry插入所需的目标表中。
import sqlite3
import time
import datetime
import random
conn = sqlite3.connect('test.db')
c = conn.cursor()
def create_table():
c.execute('create table if not exists stuffToPlot(unix REAL, datestamp TEXT, keyword TEXT, value REAL)')
def data_entry():
c.execute("INSERT INTO stuffToPlot VALUES(1452549219,'2016-01-11 13:53:39','Python',6)")
conn.commit()
c.close()
conn.close()
def dynamic_data_entry():
unix = time.time();
date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
keyword = 'python'
value = random.randrange(0,10)
c.execute("INSERT INTO stuffToPlot(unix,datestamp,keyword,value) values(?,?,?,?)",
(unix,date,keyword,value))
conn.commit()
def read_from_db():
c.execute('select * from stuffToPlot')
#data = c.fetchall()
#print(data)
for row in c.fetchall():
print(row)
read_from_db()
c.close()
conn.close()
您可以遍历CSV中的数据并将其加载到sqllite3中。请同时参考以下链接。