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

如何从CSV转换后的JSON数据中筛选年龄为22岁或已退休的条目?

筛选CSV转换后的JSON条目:保留年龄为22或已退休的记录

我来帮你搞定这个筛选需求!首先先提一下你原代码里的两个小问题,不然运行起来会出问题:一是没导入csv模块,二是创建的字典d没有添加到列表l里,最后导出的JSON会是空的。接下来是修改后的完整代码,已经加上了筛选逻辑:

import csv
import json

l = []
with open("acw_user_data.csv", 'r') as data_file:
    reader = csv.reader(data_file)
    headers = next(reader)
    for reader_row in reader:
        d = {}
        d[headers[11]] = str(reader_row[11])
        d[headers[13]] = str(reader_row[13])
        d[headers[3]] = int(reader_row[3])
        d[headers[18]] = str(reader_row[18])
        d[headers[16]] = bool(reader_row[16])
        
        # 添加筛选条件:年龄等于22 或者 已退休为true
        if d["Age (Years)"] == 22 or d["Retired"]:
            l.append(d)  # 满足条件才加入列表

# 修正文件名,加上.json后缀更规范
with open("assignment.json", 'w', encoding='utf-8') as jsonf:
    jsonString = json.dumps(l, indent=4)
    jsonf.write(jsonString)

代码改动说明:

  • 补上了缺失的import csv语句,否则会触发模块未找到的错误
  • 在创建字典d后,添加了if判断筛选逻辑:只要满足年龄等于22或者Retired为True其中一个条件,就把这条记录加入到最终的列表l中
  • 修正了输出文件名为assignment.json(原代码里的assignemt是拼写错误,加上后缀更符合JSON文件的规范)
  • 把d添加到列表l的操作放到了筛选条件内部,确保只有符合要求的记录才会被保留

筛选后的JSON结果:

运行上述代码后,你会得到符合要求的结果:

[
    {
        "First Name": "Jodie",
        "Last Name": "O'Brien",
        "Age (Years)": 57,
        "Sex": "Female",
        "Retired": true
    },
    {
        "First Name": "joe",
        "Last Name": "frank",
        "Age (Years)": 22,
        "Sex": "Female",
        "Retired": true
    }
]

可以看到,原结果中年龄57且未退休的Leke Dan记录被过滤掉了,剩下的都是符合你要求的条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:57:30