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

使用python-radar触发ValueError解包错误,求解决方案

问题排查与修复

报错原因

报错ValueError: too many values to unpack (expected 2)的核心问题:

  • radar.route.distance要求起点/终点参数是包含纬度、经度的二元结构(如元组(lat, lng)、列表[lat, lng]),但你传入的是逗号拼接的字符串,方法无法正确拆分出两个坐标值。
  • 循环中错误地将整个basepoint列(Series对象)作为终点传入,而非当前行对应的单个终点坐标。
  • 代码存在变量名错误:Sourced未定义,实际应该是读取后的file对象。

修复后的代码

from radar import RadarClient
import pandas as pd

API_key = 'API'
radar = RadarClient(API_key)

# 读取Excel文件
file = pd.read_excel('files')

# 直接生成坐标元组(无需拼接成字符串)
file['AntGeo'] = file.apply(lambda row: (row['Ant_lat'], row['Ant_long']), axis=1)
file['BaseGeo'] = file.apply(lambda row: (row['Base_lat'], row['Base_long']), axis=1)

# 遍历每一行的起点和终点
for idx, row in file.iterrows():
    antpoint = row['AntGeo']
    basepoint = row['BaseGeo']
    
    # 传入符合要求的二元坐标结构
    dist_response = radar.route.distance(antpoint, basepoint, modes='transit')
    dist_km = dist_response['routes'][0]['distance'] / 1000
    
    # 将计算结果存回DataFrame
    file.loc[idx, 'Distance_km'] = dist_km

# 可选:保存结果到Excel文件
file.to_excel('distance_result.xlsx', index=False)

关键修正点

  • 摒弃坐标字符串拼接,直接生成元组格式的坐标对,完全匹配radar方法的参数要求。
  • 使用iterrows()遍历每一行,确保每次循环取到的是对应行的单个起点和终点,而非整列数据。
  • 修正Sourced的变量名错误,替换为实际的file对象。
  • 新增结果存储逻辑,方便后续查看和使用计算数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:40:29