首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csv到复杂的嵌套json

csv到复杂的嵌套json
EN

Stack Overflow用户
提问于 2020-11-09 15:49:29
回答 1查看 35关注 0票数 1

因此,我有一个很大的CSV文件,如下所示:

代码语言:javascript
复制
PN,PCA Code,MPN Code,DATE_CODE,Supplier Code,CM Code,Fiscal YEAR,Fiscal MONTH,Usage,Defects
13-1668-01,73-2590,MPN148,1639,S125,CM1,2017,5,65388,0
20-0127-02,73-2171,MPN170,1707,S125,CM1,2017,9,11895,0
19-2472-01,73-2302,MPN24,1711,S119,CM1,2017,10,4479,0
20-0127-02,73-2169,MPN170,1706,S125,CM1,2017,9,7322,0
20-0127-02,73-2296,MPN170,1822,S125,CM1,2018,12,180193,0
15-14399-01,73-2590,MPN195,1739,S133,CM6,2018,11,1290,0

我想要做的是将所有数据按PCA代码分组。因此,PCA代码将有一定数量的零件,这些零件将由某些MPN代码和最终的嵌套JSON结构,我想看起来像:

代码语言:javascript
复制
[
    {
        PCA: {
            "code": "73-2590",
            "CM": ["CM1", "CM6"],
            "parts": [
                {
                    "number": "13-1668-01",
                    "manufacturer": [
                        {
                            "id": "MPN148"
                            "info": [
                                {
                                    "date_code": 1639,
                                    "supplier": {
                                        "id": "S125",
                                        "FYFM": "2020-9",
                                        "usage": 65388,
                                        "defects": 0,
                                    }
                                }
                            ]
                        },
                    ]
                }
            ]
        }
    }
]

因此,我想要这种结构的多个零件编号( on )具有不同的MPN与不同的日期代码等。

我目前正在使用Pandas来做这件事,但是我被困在如何继续嵌套的问题上。

到目前为止,我的代码如下:

代码语言:javascript
复制
import json
import pandas as pd

dataframe = pd.read_csv('files/dppm_wc.csv')

data = {'PCAs': []}

for key, group in dataframe.groupby('PCA Code'):
    for index, row in group.itterrows():
        temp_dict = {'PCA Code': key, 'CM Code': row['CM Code'], 'parts': []}

with open('output.txt', 'w') as file:
    file.write(json.dumps(data, indent=4))

如何继续实现我想要的嵌套JSON格式?有没有比我现在做的更好的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-09 16:15:52

我真的不明白你想用这个结构做什么,但我猜它可以通过这样的东西来实现

代码语言:javascript
复制
data = {'PCAs': []}

for key, group in df.groupby('PCA Code'):
    temp_dict = {'PCA Code': key, 'CM Code': [], 'parts': []}
    for index, row in group.iterrows():
        temp_dict['CM Code'].append(row['CM Code'])
        temp_dict['parts'].append(
            {'number': row['PN'], 
             'manufacturer': [
                 {
                     'id': row['MPN Code'], 
                     'info': [
                         {
                             'date_code': row['DATE_CODE'], 
                             'supplier': {'id': row['Supplier Code'], 
                                          'FYFM': '%s-%s' % (row['Fiscal YEAR'], row['Fiscal MONTH']), 
                                          'usage': row['Usage'], 
                                          'defects': row['Defects']}
                         }
                     ]
                 }]
             }
        )
    data['PCAs'].append(temp_dict)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64747609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档