Mongo's insert_many принимает фактический список фактических словарей, а не строку, которая, если ее "оценить", выдаст список словарей. Итак, это действительно:
db.collection.insert_many([{'a':1, 'b':2}, {'a':3, 'b':4}]) # list of dictionaries
Это недействительно:
db.collection.insert_many("[{'a':1, 'b':2}, {'a':3, 'b':4}]") # string
РЕДАКТИРОВАТЬ: как превратить строку в список? Не делайте строку, составьте список! Например (не проверено):
list_of_s_output_1s = []
for s in scholar[0:1]:
title=s.findAll("h2")[0].text
description = s.findAll("div", {"class": "text"})[0].text.replace("\n", "").replace('"','')
url = "https://www.eduvision.edu.pk/scholarships/" + s.a['href']
type= "Higher Education Commission"
# print(type +"\n" +title +"\n" +desc +"\n" +url +"\n")
s_output_1 = {
"type": type,
"title": title,
"url": url,
"description": description
}
list_of_s_output_1s.append(s_output_1)
list_of_s_s_output_2s = []
for s in scholar[1:]:
title = s.findAll("h2")[0].text
description = s.findAll("div",{"class": "text"})[0].text.replace("\n", "").replace('"','')
url = "https://www.eduvision.edu.pk/scholarships/" + s.a['href']
type= "Higher Education Commission"
s_output_2 = {
"type": type,
"title": title,
"url": url,
"description": description
}
list_of_s_output_2s.append(s_output_2)
output_final = list_of_s_output_1s + list_of_s_output_2s
db.collection2.insert_many(output_final)
print("saved")
driver.close()