Я использую mongo.db для размещения коллекции jsons, которую я превратил в список jsons, используя
cursor = finder.find_pokemans(db) #this just searches the db for query and works fine
all_pokemon = [k for k in cursor]
Но когда я передаю список в jinja2, я могу работать с ним как со списком jsons, используя следующую строку:
return render_template('index.html', list_all_pokemon = bson.json_util.dumps(all_pokemon))
эта строка в моем HTML-шаблоне (я использую встроенный js)
var all_pokemon = {{ list_all_pokemon }};
превращается в
var all_pokemon = [{"_id": {"$oid": "5ca40f82f2463129878bdd93"}, "id": 1, "name": "Bulb
Другими словами, он ускользает от всех моих цитат, поэтому его нельзя использовать как json.
Я попытался jsonifying в строке понимания списка и json.dumps в передаче переменной, но я получаю эту ошибку:
TypeError: Object of type ObjectId is not JSON serializable
Есть какие-нибудь подсказки, как это исправить?
РЕДАКТИРОВАТЬ: я могу использовать
class JSONEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, ObjectId):
return str(o)
return json.JSONEncoder.default(self, o)
return render_template('index.html', list_all_pokemon = JSONEncoder().encode(all_pokemon))
и он будет работать нормально, но мне было интересно, почему я не могу json.dumps или jsonify, как другие сценарии, и могу ли я использовать эти форматы вместо этого здесь