只能将 str (不是“NoneType”)连接到 str 的问题
Posted
技术标签:
【中文标题】只能将 str (不是“NoneType”)连接到 str 的问题【英文标题】:Problem with can only concatenate str (not "NoneType") to str 【发布时间】:2021-01-26 00:10:16 【问题描述】:当我想发送带有跨度文本的不和谐消息时,我得到了这个 '''只能将str(不是“NoneType”)连接到str''' 打印有效,但发送不和谐 webhook。
所以这是我的问题,如何解决这个问题。
我的代码:
from discord_webhook import DiscordWebhook, DiscordEmbed
import bs4
import lxml
import requests
from bs4 import BeautifulSoup
webhook=DiscordWebhook(url="X")
link='https://.com'
def sizes():
r=requests.get(link)
soup=bs4.BeautifulSoup(r.text,"lxml")
Size=soup.find_all('span', 'class': 'js-tooltipContent g-dn')
for span in Size:
print(span.text.replace('EU:','').strip())
embed = DiscordEmbed(
title= "size",
description= "sizes: " + sizes(),
color=242424,
)
webhook.add_embed(embed)
response = webhook.execute()
【问题讨论】:
是的,我想退货 您是否尝试过将其显式转换为字符串? 【参考方案1】:问题是,sizes
没有返回任何内容。 print
不返回值,它只是打印。您需要执行以下操作:
acc = ""
for span in Size:
acc += span.text.replace('EU:','').strip() # Concatenate the strings together
return acc
还有更有效的方法可以使用列表理解/生成器表达式和join
:
return "".join(span.text.replace('EU:','').strip() for span in Size)
但这变得有点复杂了。
【讨论】:
它不能完美运行,因为只有第一行文本不是全部返回。 有 size: S,M,L,XL,XXL ,但脚本只返回 S @DemonsAreHere4000 这会将所有span
s 连接在一起。如果您没有获得其余尺寸,则表明 Size
缺少数据。在循环之前做print(Size)
来验证数据。
print(Size) 正在打印所有尺寸
soup.find_all('span', 'class': 'js-tooltipContent g-dn') Out[144]: [<span class="js-tooltipContent g-dn"> EU: S </span>, <span class="js-tooltipContent g-dn"> EU: M </span>, <span class="js-tooltipContent g-dn"> EU: L </span>, <span class="js-tooltipContent g-dn"> EU: XL </span>, <span class="js-tooltipContent g-dn"> EU: XXL </span>]
以上是关于只能将 str (不是“NoneType”)连接到 str 的问题的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:只能将列表(不是“str”)连接到列表 -
Pandas TypeError:只能将str(不是“int”)连接到str
解决 TypeError:只能将元组(不是“str”)连接到元组
TypeError:在使用 Python 进行网络抓取时,只能将 str(而不是“列表”)连接到 str 错误
连接到 SQL 服务器时,Python pymssql 错误“TypeError:'NoneType' 类型的参数不可迭代”