Круговая проблема: попытка отправить данные, закодированные в форме URL, приводит к ошибке TypeError: невозможно объединить байты в str, а исправление последнего нарушает первый

то, о чем вы просите, напрямую не поддерживается, но может быть достигнуто путем добавления другого шага фильтра после возвращения запроса.

во-первых, .populate( 'tags', null, { tagName: { $in: ['funny', 'politics'] } } ) определенно то, что вам нужно сделать, чтобы отфильтровать теги документы. то после возвращения запроса вам нужно будет вручную отфильтровать документы, у которых нет документов tags, которые соответствуют критериям заполнения. что-то вроде:

query....
.exec(function(err, docs){
   docs = docs.filter(function(doc){
     return doc.tags.length;
   })
   // do stuff with docs
});
1
задан Alex R 27 February 2019 в 04:45
поделиться

1 ответ

Исправлено: вызывали urllib.parse.urlencode для преобразования dict в строку, а затем явно устанавливали тип содержимого:

    postparam = urllib.parse.urlencode({"ID": theId}).encode('utf-8')
    req = Request(url, method='POST', data=postparam)
    req.add_header("content-type", "application/x-www-form-urlencoded")
    r = urlopen(req)
0
ответ дан Alex R 27 February 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: