我正在编译时遇到此错误。我已经搜索过,但是没有解决方案不起作用
import requests
import tqdm
BASE_URL="http://www.buzzfeed.com/api/v2/feeds/index"
with open("G:\clickbait-detector-master\data/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
答案 0 :(得分:0)
此处each["title"].encode("ascii", "ignore")
产生的列表类型为bytes
,而这里"\n".join(titles)
则试图将join
放在str
上ing。无法将bytes
对象和字符串连接在一起,因此会出现错误。
如果您想在加入后生成bytes
对象,请执行以下操作:
"\n".join(titles)
但是随后您需要以二进制模式打开文件。否则,不要encode
您的数据。