TypeError:无法拼接str与dict对象(Bit.ly_API相关)求助
TypeError: cannot concatenate 'str' and 'dict' objects (Bit.ly API 问题解决方案)
嘿,作为Python新手碰到这个问题太正常了——我刚接触字典和第三方API的时候也踩过一模一样的坑!咱们来把这个问题掰碎了说:
错误根源
你误以为b.shorten(storeURL)会直接返回一个可以拿来拼接的URL字符串,但实际上Bit.ly的缩短链接API返回的是一个字典(dict),里面不光有短链接,还包含了长链接、状态码这类额外信息。举个例子,b.shorten()的返回结果大概是这个样子:
{ "url": "https://bit.ly/3XYZabc", "long_url": "你输入的原始 raffle 链接", "status_code": 200 }
当你尝试把这个字典和其他字符串用+拼接时,Python就会抛出TypeError——因为字符串和字典是完全不同的类型,没办法直接相加。
快速解决方法
你只需要从返回的字典里提取出实际的短链接字符串就行,也就是字典里'url'键对应的值。修改代码里的这部分就行:
修改后的关键代码
# 调用Bit.ly API获取结果(字典类型) shortURL = b.shorten(storeURL) # 从字典中提取短链接字符串,替换原来的直接使用shortURL text = ('Woof! ' + store1 + ' raffle is now live for the Off-White x Converse Chuck Taylor!' + '\n\n' + shortURL['url'] + '\n\n' + 'For raffle details and where to enter check and filter by "live" -\n\nhttps://www.soleretriever.com/off-white-x-converse-chuck-taylor/\n\n#soleretriever #offwhite #converse #sneakers')
额外的新手友好建议
- 如果你不确定API返回的字典里有哪些键,可以先打印出来看看:
print(shortURL),这样就能直观看到所有键值对,避免猜错键名。 - 为了让代码更健壮,还可以用
get()方法提取值:shortURL.get('url', '链接获取失败')——这样如果API返回的字典里没有'url'键,程序不会直接崩溃,而是用你指定的默认值代替。
内容的提问来源于stack exchange,提问作者Jonathan Petts
相关产品推荐
相关产品推荐

