You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab中urllib调用报错:'float'对象无'timeout'属性

问题解决:urllib.request.urlopen 报 AttributeError: 'float' object has no attribute 'timeout'

错误原因

你传入urlopen的Imagen是URL列表,且列表中存在float类型的元素(通常是CSV中的空值被解析成了NaN,属于float类型),或者直接把整个列表传给了urlopen——而urlopen的第一个参数需要是单个URL字符串,错误地传入float后,程序会把它当成Request对象去设置timeout属性,从而触发错误。

解决步骤

  1. 过滤无效URL:先清理CSV读取后的URL列表,排除非字符串、空值或NaN元素。
  2. 遍历处理单个URL:对列表中的每个有效URL单独调用urlopen,而非传入整个列表。

修正后的代码示例

import pandas as pd
import urllib.request
from PIL import Image

# 读取CSV文件(替换成你的文件名)
df = pd.read_csv("your_csv_file.csv")

# 过滤出有效的URL:仅保留字符串类型且非空的元素
valid_image_urls = [url for url in df['Imagen'] if isinstance(url, str) and url.strip()]

# 逐个处理每个有效URL
for url in valid_image_urls:
    try:
        resp = urllib.request.urlopen(url, timeout=300)
        background = Image.open(resp).convert("RGBA")
        background.thumbnail((150, 150))
        # 这里添加你的后续处理逻辑,比如保存图片等
    except Exception as e:
        print(f"处理URL {url}失败: {str(e)}")

额外提示

如果CSV中的空值是问题源头,也可以在读取CSV时指定keep_default_na=False,避免空值被解析成NaN:

df = pd.read_csv("your_csv_file.csv", keep_default_na=False)

内容的提问来源于stack exchange,提问作者NovaTec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:25:18