如何将大型Python字典存储到Postgresql表中

2024-06-16 18:55:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的python列表,我通过网络抓取收集到的。该列表由大约2900个子列表组成

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),
    ...,
]

该列表的结构分别为股票代码(股票代码)、stockCurrentPrice、stockVolume、stockDayLow、stockDayHigh和stockOpen

我的数据库结构如下:

+------------+-------------+-----+-------------+-------+
| Stock Code | Stock Price | Low | High | Open | Close |
+------------+-------------+-----+-------------+-------+
|            |             |     |      |      |       |
|            |             |     |      |      |       |

我的目标:

我正在尝试将此词典保存或存储到我的postgresql表(currentDay)

我的问题(已编辑):

我可以轻松访问每个键,然后使用循环逐个存储。但问题是,由于它太大(2900子列表),它需要几分钟才能完成,因为它是一个循环

有没有一种方法可以在一次拍摄中做到这一点,以尽量减少所花费的时间

在评论部分有人向我指出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))

但it不断向我返回以下错误:

relation "public.stockscrapper_currentday" does not exist LINE 1: INSERT INTO public.stockScrapper_currentday (ticker, stockCur...

知道怎么了吗


Tags: 列表stockpublic结构cursor股票代码insertexecutemany