0
我試圖用這個方法來節省Twitter的API獲得的一些數據:快譯通錯誤節省了MongoDB的數據 - InvalidDocument:不能編碼對象
def getTweets(usuario):
api = Autentificacion.autentificacion()
usuari = api.get_user(usuario)
dic = {}
page_list = []
for page in tweepy.Cursor(api.user_timeline, id=usuario, count=200).pages(16):
page_list.append(page)
for page in page_list:
for status in page:
id_tweet = str(status.id)
tweet = {usuari.screen_name, status.text, status.created_at}
try:
dic[id_tweet]= tweet
except (KeyError, TypeError, ValueError):
print "Error al introducir datos en el diccionario"
try:
datos = Controles()
datos.saveOnBD(dic)
except PyMongoError, e:
print "Error: ", e
的方法saveOnDB(DIC)
def saveOnBD(self, dic):
client = MongoClient('server', port)
db = client.DB_Tweets_User_Date
collection = db.tweets
collection.insert_one(dic)
這是回溯:
...
collection.insert_one(dic)
File "C:\Python27\lib\site-packages\pymongo\collection.py", line 467, in insert_one
return InsertOneResult(self._insert(sock_info, document),
File "C:\Python27\lib\site-packages\pymongo\collection.py", line 430, in _insert
gen(), check_keys, self.codec_options, sock_info)
bson.errors.InvalidDocument: Cannot encode object: set([u'That is a testing tweet', datetime.datetime(2015, 7, 2, 8, 23, 30), u'user'])
我發現很多SI類似問題,但解決方案對我無效。
非常感謝你許多!有用! – Jota