从csv到json从两个分类变量(列)中选择类别作为json fi的键

2024-09-30 16:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件:

'var0001','var0055','var0054','var0057','var0059'
404,11,1500,31,2010
502,24,38000,31,2010
311,105,46000,31,2011
765,32,28000,25,2010
102,45,67000,25,2011
482,2,34000,25,2011

我想在json文件中重新组织它们,使用var0057和var0059类别作为json输出的键,就像:

^{pr2}$

我尝试过使用tojson,但是我没有想到任何地方或函数可以将第三个或第四个变量的类别设置为dict格式的键。在


Tags: 文件csv函数json格式地方类别dict
1条回答
网友
1楼 · 发布于 2024-09-30 16:37:12

可以使用两个嵌套的defaultdicts来构建初始字典。然后,为了得到一个列表,他们认为这是一种理解,可以得到一个dict列表,然后将其转储到json:

from collections import defaultdict
import csv

d = defaultdict(lambda: defaultdict(list))
with open('test.txt') as csvfile:
    reader = csv.reader(csvfile, quotechar="'")
    header = next(reader)
    for row in reader:
        d[row[4]][row[3]].append(dict(zip(header, row[0:3])))

d现在是一个键入年份的字典。例如:

^{pr2}$

您可以将其转储到包含以下内容的列表中:

import json
json.dumps([{k: v for k, v in d.items()}])

相关问题 更多 >