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

Python解析CSV文件JSON列提取employee_id时出现JSONDecodeError报错

问题成因
  1. 代码缩进错误:遍历csv_reader的循环写在了with代码块外部,with块执行结束后CSV文件会被自动关闭,csv_reader无法正常读取文件内容,导致拿到的event_data为空字符串,json.loads解析空值时就会抛出第0位字符不符合JSON格式的错误。
  2. JSON列被双重编码:从你提供的event_data样例可以看到,存储的内容外层额外包裹了一对双引号,内部的双引号也被加了反斜杠转义,相当于合法JSON字符串被额外做了一次转义封装,直接传入json.loads无法正常解析。
解决方案

先修正代码缩进,再处理双重编码的字符串即可,修正后代码如下:

import csv
import json
import ast

with open('data.csv') as csvFile:
    csv_reader = csv.reader(csvFile, delimiter=',')
    # 遍历逻辑放在with块内部,保证读取时文件处于打开状态
    for row in csv_reader:
        event_data = row[4]
        # 先解析外层转义和包裹的引号,拿到合法JSON字符串
        raw_json = ast.literal_eval(event_data)
        # 解析JSON字符串得到字典
        data = json.loads(raw_json)
        print(data['employee_id'])

如果不想引入ast依赖,也可以直接调用两次json.loads实现相同效果:

data = json.loads(json.loads(event_data))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:57:04