python - 如何将巨大的 Python 字典存储到 Postgresql 表中
问题描述
我有这个巨大的 python 列表,我通过网络抓取收集了这些列表。该列表由大约 2,900 个子列表组成。
stockDetailsDict = [
("AAPL", 8.82, 86122300.0, 8.8, 9.18, 9.17),
("BRK", 4.83, 3286500.0, 4.83, 5.06, 5.06),
("JNJ", 727.0, 127470.0, 727.0, 742.0, 740.0),
("DIS", 9.52, 12358700.0, 9.36, 9.73, 9.5),
...,
]
列表结构分别为股票代码(ticker)、stockCurrentPrice、stockVolume、stockDayLow、stockDayHigh、stockOpen
虽然我的数据库的结构是这样的:
+------------+-------------+-----+-------------+-------+
| Stock Code | Stock Price | Low | High | Open | Close |
+------------+-------------+-----+-------------+-------+
| | | | | | |
| | | | | | |
我的目标:
我正在尝试将此字典保存或存储到我的 postgresql 表(currentDay)中。
我的问题(已编辑):
我可以轻松访问每个密钥,然后使用循环将其一一存储。但问题是,由于它太大(2,900 个子列表),它需要几分钟才能完成,因为它是一个循环。
有没有办法一次性做到这一点,以尽量减少花费的时间?
在评论部分向我指出了executemany
这样做的正确方法。所以我为此起草了代码来完成这项工作。
cursor = connection.cursor()
cursor.executemany("INSERT INTO public.stockScrapper_currentday (ticker, stockCurrentPrice, stockVolume, stockDayLow, stockDayHigh, stockOpen) VALUES (%s,%s,%s, %s,%s,%s);", (stockDetailsDict))
但它一直向我返回这个错误:
关系“public.stockscrapper_currentday”不存在 LINE 1: INSERT INTO public.stockScrapper_currentday (ticker, stockCur ...
知道有什么问题吗?
解决方案
推荐阅读
- mysql - MySQL按外键分区
- mysql - Knex 迁移:事务查询已完成
- python - Django 错误没有这样的表:main.auth_user__old
- c++ - PCL 出错:架构 x86_64 @pcl 的未定义符号
- python - numba @vectorize target='parallel' TypeError
- python - Spyder 无法从 anaconda 打开
- javascript - 如何创建一个接受多个参数的函数以在 JavaScript 中执行算术计算?
- javascript - 尝试制作导航栏但出现问题
- php - 仅支持纯文件资源流
- python - 如何为数据字典制作动画(即如何为多个 3D 数据点制作动画)?