python - 在python中循环SQL查询并按日期保存到csv文件
问题描述
任务描述
你好
我有一个数据库,想在 python 中使用 SQL 从中检索所有内容。我有兴趣将特定date
时期保存到他们自己的 csv 文件中。例如,要获取 2000 年的所有年份,date
则将介于 20000101 和 20001231 (yyyy-mm-dd) 之间。这与以下代码完美配合:
df = pd.read_sql_query('SELECT * FROM data WHERE date BETWEEN 20000101 AND 20001231', database)
df.to_csv('2000_data.csv', sep =',')
但是,我希望循环遍历不同的年份,特别是 1960 年到 2018 年,因此总共将输出 58 个不同的 csv 文件。
我可以手动更改日期,如下所示:
df = pd.read_sql_query('SELECT * FROM data WHERE date BETWEEN 20010101 AND 20011231', database)
df.to_csv('2001_data.csv', sep =',')
但这是非常低效的。在代码的查询部分更改日期以及在输出到相应的 csv 文件时更改年份的任何想法!
解决方案
创建一个值序列,步进 10k,然后遍历 using 参数化。
sql = 'SELECT * FROM data WHERE date BETWEEN ? AND ?'
for num in range(19600101, 20180102, 10000):
df = pd.read_sql(sql, database, params=[num, num+1130])
df.to_csv('{}_data.csv'.format(str(num)[:4]))
推荐阅读
- vba - 将幻灯片添加到部分
- javascript - 如何在羽毛笔编辑器中启用功能粘贴表
- python - 使用 with 在 Python 上读取和返回文件的单行语法
- java - Nailgun:如何运行 jar 文件?
- php - 如何通过调用 python 代码使用 PHP 将数据帧表打印到屏幕上?
- vue.js - Vuex - 在 $store.state 上获取参数
- postgresql - Kubernetes 中的 PostgreSQL HA 已复制持久卷
- python - 在scrapy上复制标题
- php - 当我尝试更新我的一个用户个人资料时,它会更新我的个人资料
- python - 我可以在 colab 中运行 python 脚本吗?