Во время компиляции произошла ошибка типа

#python-3.x

#python-3.x

Вопрос:

во время компиляции я получаю эту ошибку.Я уже искал, но ни одно решение не работает

 import requests
import tqdm

BASE_URL="http://www.buzzfeed.com/api/v2/feeds/index"


with open("G:clickbait-detector-masterdata/clickbait.txt", "a ") as outfile:

    for page in tqdm.tqdm(range(0, 30)):
        response = requests.get(BASE_URL, { "p": page }).json()
        titles = [each["title"].encode("ascii", "ignore") for each in response["buzzes"]]
        outfile.write("n"   "n".join(titles))
  

Я получаю выходные данные после компиляции

 TypeError                                 Traceback (most recent call last)
<ipython-input-5-5231e1171fef> in <module>()
     11         response = requests.get(BASE_URL, { b"p": page }).json()
     12         titles = [each["title"].encode("ascii", "ignore") for each in response["buzzes"]]
---> 13         outfile.write("n"   "n".join(titles))

TypeError: sequence item 0: expected str instance, bytes found
  

Ответ №1:

Здесь each["title"].encode("ascii", "ignore") вы создаете список объектов типа bytes , а здесь "n".join(titles) вы пытаетесь join их str редактировать. Невозможно объединить bytes объект и строку, поэтому вы получаете сообщение об ошибке.

Если вы хотите создать bytes объект после `присоединения, сделайте это:

 "n".join(titles)
  

Но тогда вам нужно будет открыть ваш файл в двоичном режиме. В противном случае просто не encode сохраняйте свои данные.