TypeError cannot serialize (type bytes), ElementTree
Verfasst: Freitag 4. Juni 2021, 19:12
Hallo liebe Community,
aktuell arbeite ich an einem Projekt für meine Uni, die Erstellung einer sozialen Netzwerkanalyse. Dafür lese ich den Twitter Stream aus und das funktioniert auch soweit. Das Problem ist bei dem nachfolgenden Versuch, die ausgelesenen Tweets in eine XML Datei zu schreiben.
Die Fehlermeldung:
Relevanter Code:
Mit dem Encoding/Decoding habe ich bereits einiges ausprobiert. Und wenn ich manuell ein Element erstelle und das in die XML schreibe, dann funktioniert es.
Ich stehe ziemlich auf dem Schlauch, hat jemand von euch einen Hinweis für mich, was ich falsch mache bzw. übersehe?
Freundliche Grüße,
Nydiro
aktuell arbeite ich an einem Projekt für meine Uni, die Erstellung einer sozialen Netzwerkanalyse. Dafür lese ich den Twitter Stream aus und das funktioniert auch soweit. Das Problem ist bei dem nachfolgenden Versuch, die ausgelesenen Tweets in eine XML Datei zu schreiben.
Die Fehlermeldung:
Code: Alles auswählen
TypeError: cannot serialize b'{"data":{"id":"1400875720344227840","text":"RT @jouwatch: Wie Dr. Fauci den Ursprung von Corona vertuschen\xc2\xa0wollte https://t.co/yLlexiNIdy"},"matching_rules":[{"id":1400875754578132999,"tag":"corona"}]}' (type bytes)
Code: Alles auswählen
tweets = Element('tweets')
tweet = SubElement(tweets, 'tweet')
def get_stream(headers, set, bearer_token):
response = requests.get(
"https://api.twitter.com/2/tweets/search/stream", headers=headers, stream=True,
)
print(response.status_code)
if response.status_code != 200:
raise Exception(
"Cannot get stream (HTTP {}): {}".format(
response.status_code, response.text
)
)
tweets = Element('tweets')
tweet = SubElement(tweets, 'tweet')
for response_line in response.iter_lines():
SubElement(tweet, 'text', text=response_line)
output_file = open('twitter_data.xml', 'w')
output_file.write('<?xml version="1.0"?>')
output_file.write(ElementTree.tostring(tweets).decode())
output_file.close()
Ich stehe ziemlich auf dem Schlauch, hat jemand von euch einen Hinweis für mich, was ich falsch mache bzw. übersehe?
Freundliche Grüße,
Nydiro