def flatten(l, a):
for i in l:
if isinstance(i, list):
flatten(i, a)
else:
a.append(i)
return a
print(flatten([[[1, [1,1, [3, [4,5,]]]], 2, 3], [4, 5],6], []))
# [1, 1, 1, 3, 4, 5, 2, 3, 4, 5, 6]
Что value
в вашем исходном коде?
Это должно быть dict
не экземпляр класса
Это должно работать:
postings.insert(posting.__dict__)
Вы неправильно используете метод вставки для коллекции. Просмотрите здесь: http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.insert
Что вам нужно вставка - это документ. Это должен быть ключ с ключами и значениями. Просто попытка вставить строку не подходит. json.dumps возвращает строку в формате json. Если вы просто сбрасываете его, чтобы получить dict, то шаг json не нужен.
Вставьте именно то, как должны выглядеть ваши документы:
postings.insert ({"key": "value"})
Или преобразуйте экземпляр класса непосредственно в dict, который вы хотите сохранить в качестве документа, а затем вставьте его. Он работает с вашим json.dumps.loads (), потому что это в конечном итоге дает вам dict.