为什么我的代码无法通过pymongo自动将数据帧中的数据存储到mongodb?

时间:2019-01-29 13:48:37

标签: python mongodb pandas dataframe pymongo

我正在通过API从一个问答网站爬网数据,我想自动存储数据。 通常,工作流程会获取一个主题ID并获取该主题的所有QA ID。然后我想将每个QA存储为mongoDB集合。 为了测试我的设计,我写了这个:

def df2bson(df):#transfer the dataframe to bson format
    data = json.loads(df.T.to_json()).values()
    return data
def df2mongo(self,topic_id):#store in the MongoDB
    bson_data = df2bson(df)
    client = MongoClient()
    mydb = client["zhihu_wenchuan"]
    collection = mydb.topic_id
    return collection

def get_topics(topic_id):#the function to get the demo topic
num = 1
row = []
for que in topic.unanswered_questions:
     if num< topic.questions_count:
            a = get_questions(que)
            row.append(a)
            num+=1
            if num%10==0:
                flushPrint(num/10)
 #           time.sleep(random.randint(0,1))
df = pd.DataFrame(row)
data = df2bson(df)
col = df2mongo(data,topic_id) #maybe here is the problem,but I don't know how to fix it
return col

我可以成功获取主题数据并将其存储为df,并且可以通过逐行编码(手动更改集合名称)将它们成功存储到MongoDB中,但是我无法通过上述代码将数据存储到mongodb中(将ID自动写为集合名称。

问题是,当我想获得数千个QA时,我无法写出它们的每个集合名称,我需要使用循环和函数来完成它吗? 如何调整密码?请~~

0 个答案:

没有答案