首页 > 解决方案 > 将python字典转换为表

问题描述

我有以下字典:

dict1 = {'SERVICE_METHOD-2B632733DAAE1C17': ['getCompanies', [[1569555000000, 1241.0]], [[1569555000000, 4290064.489927478]]], 'SERVICE_METHOD-294613F34334F4B4': ['verifyOtp', [[1569555000000, 366.0]], [[1569555000000, 5553469.797814208]]]}

我想要这样的表格格式:

Service_Method_Name Service_Method_ID   Timestamp   Count   Response
verifyOtp   SERVICE_METHOD-294613F34334F4B4 1569555000000   366 5553469.79
getCompanies    SERVICE_METHOD-2B632733DAAE1C17 1569555000000   1241    4290064.49

这是我到目前为止所做的..

import pandas as pd 

df = pd.DataFrame.from_dict(aaa)

for i in dict1 : 
    aaa = [i, (dict1[i][0]), (dict1[i][1][0][0]), (dict1[i][1][0][1]), (dict1[i][2][0][1])]

df = pd.DataFrame.from_dict(aaa)

print(df)

我得到以下输出

                                 0
0  SERVICE_METHOD-294613F34334F4B4
1                        verifyOtp
2                    1569555000000
3                              366
4                      5.55347e+06

如何获取上述表格格式的所有值?

标签: pythonpython-3.xpandas

解决方案


您的代码中有一个错误 - 您aaa在每次循环迭代中都覆盖了变量,因此之前迭代的数据丢失了。

例如,要进行正确的转换,您需要将数据存储在列表列表中(lst在下面的代码中命名):

import pandas as pd 

dict1 = {'SERVICE_METHOD-2B632733DAAE1C17': ['getCompanies', [[1569555000000, 1241.0]], [[1569555000000, 4290064.489927478]]], 'SERVICE_METHOD-294613F34334F4B4': ['verifyOtp', [[1569555000000, 366.0]], [[1569555000000, 5553469.797814208]]]}

lst = []
for i in dict1 : 
    lst.append([i, (dict1[i][0]), (dict1[i][1][0][0]), (dict1[i][1][0][1]), (dict1[i][2][0][1])])

df = pd.DataFrame(lst)
df.columns = ['Service_Method_ID', 'Service_Method_Name', 'Timestamp', 'Count', 'Response']

print(df)

推荐阅读