Name,abc
Title,teacher
Email,abc.edu
Phone,000-000-0000
Office,21building
About,"abc is teacher"
Name,def
Title,plumber
Email,plumber@plumber.com
Phone,111-111-1111
Office,22building
About,"The best plumber in the town"
Name,ghi
Title,producer
Phone,333-333-3333
Office,33building
About,"The best producer"
发布于 2022-10-23 19:15:39
我将使用pandas
库读取.csv (本例中的foo.csv)数据,然后使用to_json
将其转换为json。
在这种情况下,你有一本字典
import pandas as pd
pd.read_csv('aaa.csv', header=None, index_col=0, squeeze=True)\
.to_json(orient='columns')
如果要导出.json文件
import pandas as pd
with open('exported_file.json', 'w') as f:
pd.read_csv('foo.csv', header=None, index_col=0, squeeze=True)\
.to_json(f, orient='columns')
发布于 2022-10-24 01:28:31
我假设CSV-文件包含一个"Label,Value"
格式的关于个人的顺序记录,并且您希望将它重新组织在分隔的记录中,为每个人在第二维度上贴上标签作为列名。输出将作为JSON文件存储。
如果是这样的话,那么我们可以使用pandas.DataFrame.pivot
来改变数据的scructure。但在此之前,我们必须亲自组织labes。为此,我将假定Name
标签对每个人都是强制性的,并且每个唯一的标签最多出现在名称之间一次:
data = '''Name,abc
Title,teacher
Email,abc.edu
Phone,000-000-0000
Office,21building
About,"abc is teacher"
Name,def
Title,plumber
Email,plumber@plumber.com
Phone,111-111-1111
Office,22building
About,"The best plumber in the town"
Name,ghi
Title,producer
Phone,333-333-3333
Office,33building
About,"The best producer"'''
df = pd.read_csv(StringIO(data), names=['label','value'])
df['grouper'] = (df['label'] == 'Name').cumsum()
df = df.pivot(index='grouper', columns='label', values='value')
有了这些数据,我们可以将其保存为:
df.to_json('test.json', orient='records', lines=True)
https://stackoverflow.com/questions/74176242
复制相似问题