2016-08-23 49 views
0

我試圖直接從Twitter將推文保存爲MongoDB以供稍後檢索,但我一直收到有關json的錯誤消息。有人請幫忙!以下是帶錯誤消息的示例代碼。使用pymongo在MongoDB中存儲推文

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) 

錯誤消息:

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)'看起來很奇怪。 'insert_many'插入多個文檔,因此它需要一個'list'。使用'insert_one'來插入一個文檔。 – Messa

回答

1

錯誤消息指示您正在嘗試load字典對象。這意味着你已經有了一個字典對象。我不確定json.load即使確實有效也會有什麼意義。

所以,你可能只需要做到:

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

非常感謝L-Jones9的幫助......我還必須將最後一行改爲collection.insert(py_dict) – user6747582

1

searcher.getTwitterComment回報字典而不是JSON。

這就是爲什麼你會得到這個錯誤,json.load()已被稱爲可能。

相關問題