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

如何将含id与JSON列的CSV数据转换为嵌套Python字典?

解决CSV中JSON字符串转嵌套Python字典的问题

很简单,你只需要对读取到的JSON字符串调用json.loads()进行解析,同时把id列的字符串转换成整数类型,就能得到你想要的嵌套字典结构了。修改后的完整代码如下:

import csv
import json

with open('data.csv', mode='r') as infile:
    reader = csv.reader(infile)
    # 转换id为整数,解析JSON字符串为Python字典
    mydict = {int(rows[0]): json.loads(rows[1]) for rows in reader if rows[0] != "id"}

关键修改点说明:

  • int(rows[0]):CSV读取的id默认是字符串类型,转换成整数后,字典的键就会是你示例里的数值形式(比如-2023284724而非"-2023284724")。
  • json.loads(rows[1]):这个方法会将JSON格式的字符串直接解析为对应的Python嵌套字典结构,替代原来保留的原始字符串,完美实现你需要的嵌套效果。

运行这段代码后,mydict里的每个值都会是解析后的嵌套字典,和你给出的示例效果完全一致。如果你的CSV里存在格式不合法的JSON字符串,可以考虑添加try-except块来捕获解析错误,避免程序崩溃:

import csv
import json

with open('data.csv', mode='r') as infile:
    reader = csv.reader(infile)
    mydict = {}
    for rows in reader:
        if rows[0] == "id":
            continue
        try:
            mydict[int(rows[0])] = json.loads(rows[1])
        except json.JSONDecodeError as e:
            print(f"解析id为{rows[0]}的JSON时出错: {e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:23:32