如何在解析python中的json数据时解析多个索引值并创建一个csv文件

阿维纳什

我有几个静态键列EmployeeId,type和几个列来自第一个FOR循环。

在第二个FOR循环中,如果我有特定的键,则仅应将值附加到现有的数据框列上,否则从第一个for循环中获取的列应保持不变。

第一For循环输出:

"EmployeeId","type","KeyColumn","Start","End","Country","Target","CountryId","TargetId"
"Emp1","Metal","1212121212","2000-06-17","9999-12-31","","","",""

在第二次循环之后,我有以下输出:

"EmployeeId","type","KeyColumn","Start","End","Country","Target","CountryId","TargetId"
"Emp1","Metal","1212121212","2000-06-17","9999-12-31","","AMAZON","1",""
"Emp1","Metal","1212121212","2000-06-17","9999-12-31","","FLIPKART","2",""

根据代码,如果我有Employee标签可用,我有2条以上的记录,但是我可能有一些没有Employee标签的json文件,那么输出应与First Loop Output相同。

但是我根据我的代码获得了0条记录。如果我的编码方式有误,请帮助我。

真的很抱歉-如果我不熟悉python,提出问题的方式不清楚。请在下面的超级链接中找到代码

请找到下面的代码

    for i in range(len(json_file['enty'])):
        temp = {}
        temp['EmployeeId'] = json_file['enty'][i]['id']
        temp['type'] = json_file['enty'][i]['type']
        for key in json_file['enty'][i]['data']['attributes'].keys():        
            try:
                temp[key] = json_file['enty'][i]['data']['attributes'][key]['values'][0]['value']
            except:
                temp[key] = None      

        for key in json_file['enty'][i]['data']['attributes'].keys(): 
            if(key == 'Employee'):
                for j in range(len(json_file['enty'][i]['data']['attributes']['Employee']['group'])):
                    for key in json_file['enty'][i]['data']['attributes']['Employee']['group'][j].keys():
                        try:
                            temp[key] = json_file['enty'][i]['data']['attributes']['Employee']['group'][j][key]['values'][0]['value']
                        except:
                            temp[key] = None

                    temp_df = pd.DataFrame([temp])
                    df = pd.concat([df, temp_df], sort=True)

    # Rearranging columns
    df = df[['EmployeeId', 'type'] + [col for col in df.columns if col not in ['EmployeeId', 'type']]]

    # Writing the dataset
    df[columns_list].to_csv("Test22.csv", index=False, quotechar='"', quoting=1)

如果员工标签不可用,我将获得0条记录作为输出,但是我希望根据第一个FOR循环的输出获得1条记录。如果“雇员标签”可用,那么我希望有2条记录以及我的静态列“ EmployeeId”,“类型”,“ KeyColumn”,“开始”,“结束”,否则,如果标签不可用,则所有静态列“ EmployeeId”,“类型”,“键列”,“开始”,“结束”,其余列为空白

在此处输入链接说明

U10转发

一个很长的解决方案,可以修改代码,从而增加一个循环,更改索引以及修改range参数:

df = pd.DataFrame()

num = max([len(v) for k,v in json_file['data'][0]['data1'].items()])
for i in range(num):
    temp = {}
    temp['Empid'] = json_file['data'][0]['Empid']
    temp['Empname'] = json_file['data'][0]['Empname']
    for key in json_file['data'][0]['data1'].keys():
        if key not in temp:
            temp[key] = []
        try:
            for j in range(len(json_file['data'][0]['data1'][key])):
                temp[key].append(json_file['data'][0]['data1'][key][j]['relative']['id']) 
        except:
            temp[key] = None                    
    temp_df = pd.DataFrame([temp])
    df = pd.concat([df, temp_df],ignore_index=True)
for i in json_file['data'][0]['data1'].keys():
    df[i] = pd.Series([x for y in df[i].tolist() for x in y]).drop_duplicates()

现在:

print(df)

是:

  Empid Empname    XXXX   YYYYY
0  1234     ABC  Naveen   Kumar
1  1234     ABC     NaN  Rajesh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Go从一个HTTP请求中解析文件和JSON数据?

如何在Swift中解析的JSON中解析一个数组?

github说在rest api中创建一个repo时无法解析json

如何创建一个多级json文件,然后从python中读取特定值?

在Python中解析Json并找到一个值

如何在Python中从JSON解析值

如何从多个文件中的一个文件解析一个列并连接输出?

从一个CSV创建多个文件,从一个列中的每个值创建一个文件[Powershell]

循环一个简短的python脚本,用于解析json文件中的数据

使用Python将位于一个文件夹中的多个HTML文件解析为一个或多个CSV

Python:如何最好地解析csv和仅计数一个子集的值

如何在R中的一个csv excel文件的多个工作表中写入多个数据框?

如何在python中解析csv文件

在Perl中,如何解析一个CSV文件,其中的字段包含逗号分隔的值?

如何解析一个简单的csv文件?

当另一个函数可以解析csv文件时,为什么该函数无法解析csv文件中的数据

如何解析一个JSON文件?

如何在android中解析一个大的JSON文件

从JSON响应中解析一个不断变化的值

在csv文件中创建一个重复的行以分隔列中的多个值(python)

如何在 Android 中解析多个 Json 值?

解析数据框中的重载列 - 使用一个 mutate 语句创建多个列

如何在解析 Json 文件中的数据时仅获取 Python 脚本中所需的列

如何解析来自多个 json 字段的数据并将它们组合在一个列表中?

如何将多个 xml 文件中的属性值解析为一个 Pandas 数据框?

用python解析一个json txt文件

取一个在 Python 中创建的 map() 并格式化数据值以创建一个 .json 文件

如何在python中解析JSON值

如何在python中解析csv文件?