【发布时间】:2021-10-29 22:37:12
【问题描述】:
我使用 sqlite3 创建了一个名为“entities_data”的数据库
import sqlite3
conn = sqlite3.connect('entities_data.sqlite')
cur = conn.cursor()
cur.execute('DROP TABLE IF EXISTS entities')
cur.execute('''
CREATE TABLE entities (
id INTEGER PRIMARY KEY, tweet_id INTEGER, type TEXT,
value INTEGER, start_index INTEGER, end_index INTEGER, FOREIGN KEY (tweet_id) REFERENCES tweets (id))
''')
conn.close()
我有一个记录所有推文的 JSON 文件数据库,它的简化版本只有 2 条推文看起来像这样
[ {"id_1" : "123", "created_at" : "monday", "tweet_text" : "#hi my name is john", "entities": {"hashtags": [{"text": "hi", "indices": [0, 2]}], "symbols": [], "user_mentions": [], "urls": [{"url": "link_1",[211, 234]}] }
{"id_2" : "456", "created_at" : "tuesday", "tweet_text" : "#food i am eating now", "entities": {"hashtags": [{"text": "food", "indices": [0, 5]}], "symbols": [], "user_mentions": [], "urls": [], "media": "img_1"} }]
有了这个,我只想在实体键中有值时才从实体键中取出键。比如在id_1中,会拉出["hashtags", "urls],而id_2会拉出["hashtags", "media"]。
使用下面的代码,我设法提取了“实体”中的所有键,但是由于它们是 str 对象,所以我不断收到错误消息。
conn = sqlite3.connect('entities_data.sqlite')
cur = conn.cursor()
for records in data:
for entity in records['entities']:
print(entity)
【问题讨论】:
-
请分享完整的错误细节。
data是在哪里定义的?