gpt4 book ai didi

python - 错误 :document must be an instance of dict, bson.son.SON、bson.raw_bson.RawBSONDocument 或继承自 collections.MutableMapping 的类型

转载 作者:可可西里 更新时间:2023-11-01 10:03:06 27 4
gpt4 key购买 nike

尝试将推特流数据存储到 MongoDB 中。该代码几乎是 http://stats.seandolinar.com/collecting-twitter-data-storing-tweets-in-mongodb/ 的副本但总是显示错误。如果我试图打印出数据,它显示 json 文件不断增长,但它似乎永远不会结束,尽管 while 循环有时间限制。!

class listener(StreamListener):

def __init__(self, start_time, time_limit=60):
self.time = start_time
self.limit = time_limit

def on_data(self, data):
while (time.time() - self.time) < self.limit:
try:
tweet = json.loads(data)
client = MongoClient('localhost', 27017)
db = client['twitter_db']
collection = db['twitter_collection']
collection.insert_many(tweet)
return True
except BaseException, e:
print 'failed ondata,', str(e)
time.sleep(5)
pass
exit()

def on_error(self, status):
print statuses

最佳答案

您使用错误的方法将文档插入到您的集合中。在你的情况下,json.loads返回字典而不是 list 因此你需要使用 insert_one插入单个文档的方法,因为 insert_many只插入一个可迭代的文档。

关于python - 错误 :document must be an instance of dict, bson.son.SON、bson.raw_bson.RawBSONDocument 或继承自 collections.MutableMapping 的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com