将python列表插入PostgreSQL数据库

zub*_*mic 2 python postgresql psycopg2

我正在做一个抓取项目,我正在努力将数据插入数据库。

我的数据库有三列:id、post 和 author 抓取的数据存储在两个列表中。第一个是列表帖子,第二个是作者。两者的长度总是相同的,因为没有没有内容的文章或没有作者的文章。

我已经尝试过这个问题中提供的解决方案,但我收到了这个错误:

Traceback (most recent call last):
File "scrape.py", line 69, in <module>
cur.execute("INSERT into posts(id, post, author) VALUES (%s, %s, %s)", authors)
TypeError: not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud)

我的列表如下所示:

author = [n1, n2, n3 ... n45]
posts = [n1, n2, n3 ... n45]
Run Code Online (Sandbox Code Playgroud)

我想像这样将它们插入到数据库中:

ID | Post | Author
---|------|--------
1  | Text | Author
2  | Text | Author
Run Code Online (Sandbox Code Playgroud)

稍后我需要从 post 列中的值中提取统计信息。确切地说,它们出现的次数和次数,但我想它有资格回答另一个问题。

cri*_*007 5

您尝试将作者列表插入帖子表中吗?这不太合理。

当然你正在寻找这样的东西

data = [(1, 'post', 'author'), (2, 'post', 'author')]
for d in data:
    cur.execute("INSERT into posts(id, post, author) VALUES (%s, %s, %s)", d)
Run Code Online (Sandbox Code Playgroud)

此外 id 值通常是整数,但您似乎将格式设置为字符串

如果要保留单个列表,请查看结果 zip(posts, authors)