#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
сохраняйте свои данные.