String indices Problem mit Twitter API
Verfasst: Mittwoch 22. September 2021, 12:51
Hi Leute,
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:
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
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