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

使用Python/pandas加载JSON文件遇错误:NameError与ValueError

问题解决:JSON文件加载错误修复

方式一:本地JSON Lines文件加载(NameError修复)

错误原因

json_data 定义在for循环的try代码块内部,属于局部变量,循环结束后外部无法访问。如果第一行JSON解码失败,json_data甚至不会被定义,直接调用就会触发NameError。另外你的文件看起来是JSON Lines格式(每行一个独立JSON对象),建议把所有数据收集到列表中方便后续处理。

修复代码

import json

# 提前初始化列表存储所有JSON数据
json_data_list = []
with open("/Users/davidelks/Dropbox/Personal/publicextract_charity.json", "r") as file:
    for line_num, line in enumerate(file, 1):
        line = line.strip()  # 去除换行符和空白
        if not line:
            continue  # 跳过空行
        try:
            json_data = json.loads(line)
            json_data_list.append(json_data)
            # 在这里可以逐行处理数据
        except json.JSONDecodeError as e:
            print(f"第{line_num}行解码错误: {e}")

# 现在可以访问所有加载的数据
print(f"成功加载{len(json_data_list)}条数据")
# 如果需要单个对象(确认文件只有一行的话),可以取json_data_list[0]

方式二:远程Dropbox文件加载(ValueError修复)

错误原因

  1. Dropbox共享链接默认是网页预览(dl=0),不是原始文件下载链接,pd.read_json无法解析网页HTML内容,导致ValueError。
  2. 如果文件是JSON Lines格式,pd.read_json默认按完整JSON对象解析,需要指定lines=True参数。

修复代码

import pandas as pd
import altair as alt

# 把Dropbox链接的dl=0改成dl=1,获取直接下载链接
df = pd.read_json(
    "https://www.dropbox.com/s/55vqvl1qdsdul8v/publicextract_charity.json?dl=1",
    encoding='utf-8',
    lines=True  # 针对JSON Lines格式的关键参数
)

# 验证数据加载成功
print(df.head())

额外提示

  • 如果不确定文件格式,可以先本地打开文件查看:如果每行一个JSON对象就是JSON Lines,否则是标准JSON数组/对象。
  • 用json模块加载远程链接的话,需要先通过requests库下载内容,再解析:
import json
import requests

url = "https://www.dropbox.com/s/55vqvl1qdsdul8v/publicextract_charity.json?dl=1"
response = requests.get(url)
response.encoding = 'utf-8'

# 如果是JSON Lines
json_data_list = []
for line in response.text.splitlines():
    line = line.strip()
    if line:
        try:
            json_data = json.loads(line)
            json_data_list.append(json_data)
        except json.JSONDecodeError as e:
            print(f"解码错误: {e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 05:00:22