2016-08-23 3 views
0

Ich versuche, Tweets direkt von Twitter in MongoDB für den Abruf später zu speichern, aber ich bekomme Fehlermeldungen in Bezug auf json. Jemand bitte helfen! Hier sind die Beispielcodes mit Fehlermeldungen.Speichern Tweets in MongoDB mit Pymongo

searcher = keywordSearcher('','','') ## this is an object class 
client = MongoClient('localhost', 27017) 
db = client.test_dbase ## connect to database twitter 
collection = db.rio_olympics ## create a collection object 
result = searcher.getTwitterComment('Olympics 2016', '21 August 2016', 2) ## this is where I query Twitter Search API 

py_dict = json.load(result) 
post_id = collection.insert_many(py_dict) 

Fehlermeldung:

Traceback (most recent call last): 
    File "/home/edidiong/myWorkSpace/keywordSearchTest.py", line 12, in <module> 
    class keywordSearchTest: 
    File "/home/edidiong/myWorkSpace/keywordSearchTest.py", line 45, in keywordSearchTest 
    py_dict = json.load(result) 
    File "/usr/lib/python2.7/json/__init__.py", line 287, in load 
    return loads(fp.read(), 
    AttributeError: 'dict' object has no attribute 'read' 
+0

BTW. 'collection.insert_many (py_dict)' sieht seltsam aus. 'insert_many' fügt mehrere Dokumente ein und erwartet daher eine' liste'. Verwenden Sie 'insert_one', um nur ein Dokument einzufügen. – Messa

Antwort

1

Die Fehlermeldung zeigt an, dass Sie versuchen, ein Wörterbuchobjekt load. Dies bedeutet, dass Sie bereits ein Wörterbuchobjekt haben. Ich bin mir nicht sicher, was der Punkt der json.load wäre, selbst wenn es funktioniert hätte.

So können Sie wahrscheinlich nur tun:

py_dict = searcher.getTwitterComment("Olympics 2016", '21 August 2016', 2) 
post_id = collection.insert_many(py_dict) 
+0

Vielen Dank L-Jones9 für deine Hilfe ... Ich musste auch die letzte Zeile in collection.insert (py_dict) ändern – user6747582

1

Ihr searcher.getTwitterComment kehrt ein Wörterbuch und nicht json.

Deshalb erhalten Sie diesen Fehler, json.load() heißt wahrscheinlich schon.

Verwandte Themen