python - 无法将 JSON 数据插入 sqlite3 数据库
问题描述
我使用 python 创建了一个 sqlite3 数据库来存储数据,如下面的代码所示
import sqlite3
conn = sqlite3.connect('tweets_data.sqlite')
cur = conn.cursor()
cur.execute('DROP TABLE IF EXISTS tweets')
cur.execute('''
CREATE TABLE tweets (
id INTEGER PRIMARY KEY, created_at TEXT, full_text TEXT,
favourite_count INTEGER, retweet_count INTEGER)
''')
使用此表,我想存储来自 JSON 文件的数据(部分代码被截屏并作为图像附加),我已加载如下所示
import json
with open('tweets.json') as f:
data = json.load(f)
之后,我尝试使用 for 循环将数据插入表中,以提取所有唯一的推文 ID 及其以下信息。下面的代码是我尝试做的
for records in data:
cur.execute('INSERT INTO tweets (id, created_at, full_text, favourite_count, retweet_count) VALUES (?, ?, ?, ?, ?)',
(records['id'], records['created_at'], records['full_text'], records['user']['favourites_count'], records['retweet_count']))
conn.commit()
print(cur.fetchall())
conn.close()
但是,当我打印 (cur.fetchall()) 时,输出只是一个空列表。表中没有插入任何内容。如果有人能提供帮助,谢谢!
解决方案
cur.fetchall()
返回最后一个查询的结果,并且INSERT
不产生任何结果。您首先需要一个SELECT
-query:
cur.execute('SELECT * FROM tweets')
rows = cut.fetchall()
推荐阅读
- c# - 两个泛型类型的继承
- qt - qt滚动条中的并排图像
- tensorflow - 在 Windows 上的张量流中调用检查点时出错
- xml - web xml spring中contextconfiglocation的用途是什么?
- maven - 在 STS 中找不到 Tomcat
- c - C中的冒泡排序输出问题
- php - FatalErrorException 调用字符串 Laravel 5.4 上的成员函数 diffForHumans()
- android - 我正在尝试使用 Ionic 框架构建 apk
- javascript - 添加java函数时Android Studio没有响应
- python - 无法在 Django 中存储多个图像