使用Python range()时出现GeoDataFrame TypeError的异常问题
问题原因与解决办法
核心问题
你把读取的shapefile(即GeoDataFrame对象)赋值给了range变量,直接覆盖了Python自带的range()内置函数。后续调用range(0,7506)时,实际是在尝试调用那个GeoDataFrame对象,但它并非可调用的函数,因此触发TypeError: 'GeoDataFrame' object is not callable异常。
修复步骤
- 重命名冲突变量:把存储shapefile的变量名从
range改成其他合法名称,比如shp_data、shape_range这类不会和内置函数重名的名字。示例:# 错误写法 range = gpd.read_file("你的shape文件路径.shp") # 修正后写法 shp_data = gpd.read_file("你的shape文件路径.shp") - 按需重启解释器:如果是在Jupyter Notebook或Python交互式shell中运行代码,就算修改了变量名,当前环境里的
range已经被替换成GeoDataFrame对象,需要重启解释器才能恢复内置range()函数的正常功能。 - 验证修复效果:修改完成后尝试执行
print(range(0,2)),应该能正常生成range对象,不再触发报错。
注意事项
绝对不要使用Python内置函数、关键字作为变量名,比如list、str、dict、range、for等,这类命名会直接覆盖内置功能,引发难以排查的异常。
内容的提问来源于stack exchange,提问作者Taku Koh
相关产品推荐
相关产品推荐

