Pandas报错:module 'pandas' has no attribute 'Dataframe' 求助
问题解决步骤
1. 修复DataFrame拼写错误
你代码里的pd.Dataframe是错误写法,Pandas中正确的类名是**pd.DataFrame**(注意最后一个字母为大写F),请确认代码中拼写完全符合这个格式。
2. 处理API返回数据的嵌套结构
Distance Matrix API返回的JSON存在多层嵌套,直接用from_dict转换会导致DataFrame结构混乱,需要先解析提取关键字段,再构建规整的表格数据。
3. 优化API请求的参数传递方式
直接拼接URL会因地址中的空格、特殊字符导致请求失败,改用requests.get的params参数可自动处理编码问题。
修正后的完整代码
import requests import pandas as pd origin = "Centro Hospitalar Universitário de São João, E. P. E" destination = "Braga" api_key = "你的API密钥" # 使用params参数传递请求参数,自动处理特殊字符编码 params = { "origins": origin, "destinations": destination, "key": api_key } response = requests.get("https://api.distancematrix.ai/maps/api/distancematrix/json", params=params) print(response.status_code) data = response.json() # 解析嵌套JSON,提取有用信息 parsed_data = [] origin_addr = data["origin_addresses"][0] dest_addr = data["destination_addresses"][0] for row in data["rows"]: for element in row["elements"]: parsed_data.append({ "起点地址": origin_addr, "终点地址": dest_addr, "距离(米)": element["distance"]["value"], "距离描述": element["distance"]["text"], "时长(秒)": element["duration"]["value"], "时长描述": element["duration"]["text"], "状态": element["status"] }) # 构建DataFrame df = pd.DataFrame(parsed_data) # 导出到CSV(无需额外依赖) df.to_csv("距离矩阵结果.csv", index=False, encoding="utf-8-sig") # 导出到Excel(需先安装openpyxl:pip install openpyxl) df.to_excel("距离矩阵结果.xlsx", index=False)
额外注意事项
- 导出Excel前需安装依赖库,执行命令:
pip install openpyxl - 确保API密钥有效且有足够调用额度
- 若涉及多个起点/终点,需循环遍历
origin_addresses和destination_addresses字段来匹配对应数据
内容的提问来源于stack exchange,提问作者Gamja
相关产品推荐
相关产品推荐

