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

为何提取JSON中'souradnice'坐标时循环报错,单个提取正常?

问题排查与解决方案

1. 代码变量未定义问题

你提供的代码中cz变量未定义,这是直接报错的原因之一。需要从location_data中获取包含souradnice的数据集,比如数据结构里的obce数组,正确的变量引用应为location_data['obce'](取决于JSON实际层级结构)。

2. 数据中存在None值导致循环报错

核心问题是部分条目的souradnice字段为None:单独打印单个坐标时你可能选中了有值的条目,但循环遍历所有条目时,遇到None的条目尝试访问[0]/[1]索引就会触发NoneType错误。

修正后的代码示例

import requests

url = 'https://data.cesko.digital/obce/1/obce.json'
resp = requests.get(url=url)
location_data = resp.json()

x = list()
y = list()
# 遍历数据集中的每个条目,先判断坐标是否有效
for item in location_data['obce']:
    coords = item.get('souradnice')
    if coords is not None:
        y.append(coords[0])
        x.append(coords[1])

额外排查建议

  • 先打印数据结构确认层级:执行print(location_data.keys())或print(location_data['obce'][0]),查看单个条目的完整字段结构。
  • 统计无坐标数据的数量,方便定位问题:
none_count = sum(1 for item in location_data['obce'] if item.get('souradnice') is None)
print(f"共{none_count}条数据无坐标信息")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:46:27