繁体   English   中英

如何为每列制作具有不同行的多列

[英]How to make multi columns with different rows for each columns

我目前被阻止,因为我想制作一个CSV文件,其中我的第一列只填充键,第二列填充我的值和标题。 像这样 : 截图 1

但实际上看起来像这样: 截图 2

我的 JSON 测试文件:

{
 "name":"<customer>_<datetime>.zip",
 "status":"OK",
 "lib_status":"SUCCESS",
 "ID":" ",
 "ID_emitter":"<customer>",
 "recipient":" ",
 "validator":{
     "sender_email_address":"example@example.com",
     "sender_email_address_no_reply":"example@example.com"
     },
 "connexFileList":[
   {
        "connexFile":"<customer>_<datetime>",
        "type":"json"
   }
   ],
  "PReS":{
    "domain":" ",
    "client":" ",
    "inputFlowList":[
        {
            "inputFile":" ",
            "type":" ",
            "status":" "
        }
        ]
    }
   }

我目前的代码:

import json
import pandas as pd

with open('test.json') as f:
    json_dict = json.load(f)

name = json_dict['name']
status = json_dict['status']
lib_status = json_dict['lib_status']
ID_emitter = json_dict['ID_emitter']

for connexFileList in json_dict['connexFileList']:
    connexFile = connexFileList['connexFile'],
    type2 = connexFileList['type']

for PReS in json_dict['PReS']['inputFlowList']:
    inputFile = PReS['inputFile']
    type3 = PReS['type']
    status2 = PReS['status']

raw_data = {
"firstitem": [name, status, lib_status, ID_emitter, '', '', '', '', ''],
"connexFileList": ['', '', '', '', connexFile, type2, '', '', ''],
"PReS": ['','','','','','', inputFile, type3, status2],
}

df = pd.DataFrame(raw_data,
              index=pd.Index(['name :', 'status :', 'lib_status', 'ID_emitter', 
                              'connexFile','type','inputFile', 'type', 'status']),
              columns=pd.Index(['firstitem', 'connexFileList', 'PReS'])
              )
df.to_csv('test.csv', sep=";")

但这不是我想要的CSV ,并且带有[' ', ' ',...]的 raw_data 并没有真正优化......我认为解决方案是pd.MultiIndexpd.Series但我没有知道如何在我的代码中应用这两种解决方案。

试试这个:

raw_data = {
 "firstitem": [name, status, lib_status, ID_emitter, '', '', '', '', ''],
 " ": ['connexFile','type','', '', '', '', '', '', ''],
 "connexFileList": [connexFile, type2, '', '', '','', '', '', ''],
 "PReS": ['','','','','','', inputFile, type3, status2],
"": ['inputFile','type','status', '', '', '', '', '', '']
 }

df = pd.DataFrame(raw_data,
           index=pd.Index(['name', 'status', 'lib_status', 'ID_emitter', 
                           '','','', '', '']),
           columns=pd.Index(['firstitem', ' ','connexFileList','', 'PReS'])
           )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM