ich möchte mithilfe der Twitter API Tweets auslesen und in einer SQLite Datenbank speichern, leider stoße ich hierbei auf ein Problem, das ich nicht gelöst bekomme. Beim fetchen der Tweets, um sie anschließend in der Datenbank abzuspeichern bekomme ich einen TypeError: string indices must be integers Fehler.
Hier die dazugehörigen Codeausschnitte:
Code: Alles auswählen
con = sqlite3.connect("db.db")
cur = con.cursor()
def db():
with con:
cur.execute("""CREATE TABLE IF NOT EXISTS User (user_id INTEGER, created_at TEXT, description TEXT,
entities TEXT, location TEXT, name TEXT, username TEXT, verified TEXT, followers_count INTEGER,
following_count INTEGER, tweet_count INTEGER, listed_count INTEGER, withheld TEXT, protected TEXT, UNIQUE(user_id))""")
Code: Alles auswählen
def insertUser(user_id, created_at, description, entities, location, name, username, verified,
followers_count, following_count, tweet_count, listed_count, withheld, protected):
with con:
cur.execute("INSERT OR IGNORE INTO User VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
(user_id, created_at, description, entities, location, name, username, verified,
followers_count, following_count, tweet_count, listed_count, withheld, protected))
Code: Alles auswählen
for t in r:
user = t['author_id']
print(user)
insertUser(user['id'], user['created_at'], user['description'], user.get("entities", ""), user.get("location", ""), user['name'],
user['username'], user['verified'], user['public_metrics']['followers_count'], user['public_metrics']['following_count'],
user['public_metrics']['tweet_count'], user['public_metrics']['listed_count'],str(user.get("withheld", "")), user.get("protected", ""))
Hier noch die komplette Konsolenausgabe des Problems:
Traceback (most recent call last):
File "...", line X, in fetchTweets
insertUser(user['id'], user['created_at'], user['description'], user.get("entities", ""), user.get("location", ""),
user['name'], user['username'], user['verified'], user['public_metrics']['followers_count'], user['public_metrics']['following_count'],user['public_metrics']['tweet_count'], user['public_metrics']['listed_count'],str(user.get("withheld", "")), user.get("protected", ""))
TypeError: string indices must be integers
(venv) PS C:\Dateipfad>
Ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann, bzw. jemand eine Idee hat welchen Ursprungs der Fehler ist.
Liebe Grüße