TypeError: Object of type 'filter' is not JSON serializable
Это меня действительно сбивает с толку. (Моя функция «realfiles» просто удостоверяет, что список каталогов не содержит файлов Thumbs.db или .DS_Store, и даже если я уменьшу его до «return True», я получаю ту же ошибку.)Попытка фильтровать список в Python (колбу) и назначить переменной сеанса ... TypeError
I «Не пытаюсь сериализовать фильтр, что бы это ни значило. Я сериализую список, который является выходом этого фильтра. Правильно? Python не мой лучший язык, поэтому я изначально думал, что моя ошибка была попыткой присвоить выход фильтра к переменной сессии в том же линейчатом то, что бы работало хорошо в Javascript-
session['dir_listed_projects'] = filter(realfiles , pList)
session['dir_listed_templates'] = filter(realfiles , tList)
поэтому я переписал его присвоить промежуточной переменной:
@app.route('/projects', methods=['GET', 'POST'])
def projects():
listA = listdir(outta(here, 2) + '/Projects')
listB = listdir(outta(here, 2) + '/_Templates')
pList = filter(realfiles , listA)
tList = filter(realfiles , listB)
session['dir_listed_projects'] = pList
session['dir_listed_templates'] = tList
return render_template('projects.html')
nope.
TypeError: Object of type 'filter' is not JSON serializable
Если я не использую фильтр на всех, но назначить выход listdir напрямую, страница будет оказывать без какой-либо ошибки и он работает нормально с фильтра, прежде чем я начал обновление с Python 2. x до 3.x.
В python3 фильтр не возвращает список, кроме объекта фильтра. Преобразуйте это в список, сохраняя его в сеансе. – Wombatz