为什么python会引发错误:“需要float参数,而不是unicode”

2024-10-01 00:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

for each_ID ,each_Title in zip(Id,Title):
    url="http://www.zjjsggzy.gov.cn/%E6%96%B0%E6%B5%81%E7%A8%8B/%E6%8B%9B%E6%8A%95%E6%A0%87%E4%BF%A1%E6%81%AF/jyxx_1.html?iq=x&type=%E6%8B%9B%E6%A0%87%E5%85%AC%E5%91%8A&tpid=%s&tpTitle=%s"%(each_ID,each_Title)

“each_ID”和“each_Title”都来自网站unicode参数,但为什么会导致“float”错误,%s不是字符串?在


Tags: inidhttpurlfortitlewwwzip
2条回答

尝试对字符串使用format方法。现有的'%'字符与您的%s占位符冲突:

 for each_ID ,each_Title in zip(Id,Title):
  url="http://www.zjjsggzy.gov.cn/%E6%96%B0%E6%B5%81%E7%A8%8B/%E6%8B%9B%E6%8A%95%E6%A0%87%E4%BF%A1%E6%81%AF/jyxx_1.html?iq=x&type=%E6%8B%9B%E6%A0%87%E5%85%AC%E5%91%8A&tpid={}&tpTitle={}".format(each_ID, each_Title)

字符串中有加载%格式化程序的%E格式化一个float对象。您的字符串中有几个,包括在开头:

"http://www.zjjsggzy.gov.cn/%E6
#                           ^^

您需要将URL字符转义中使用的每个%加倍

^{pr2}$

这将是一个很大的工作,你最好使用不同的字符串格式样式。使用^{}

url = (
    "http://www.zjjsggzy.gov.cn/"
    "%E6%96%B0%E6%B5%81%E7%A8%8B/%E6%8B%9B%E6%8A%95%E6%A0%87%E4%BF%A1%E6%81%AF"
    "/jyxx_1.html?iq=x&type=%E6%8B%9B%E6%A0%87%E5%85%AC%E5%91%8A&"
    "tpid={}&tpTitle={}".format(
        each_ID, each_Title)
)

为了便于阅读,我将字符串分成多个块,{}括号描述了占位符。在

相关问题 更多 >