python - 将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
如何获取上述表格格式的所有值?
解决方案
您的代码中有一个错误 - 您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)
推荐阅读
- codeigniter - 如何调用资源路由 Codeigniter 4
- sql - 如何使用 SQL 查询获得不同的结果
- reactjs - 更改语义 UI 按钮组件中的文本颜色
- sqlite - 我如何解决 sqlite 数据库 E/SQLiteLog(16449) 中的这种错误:(1) “Order”附近:语法错误
- python - 是否可以在 python 的 if 语句中将一个变量与其他几个变量进行比较?
- javascript - 为什么 array.push() 不改变数组?
- actions-on-google - 缺少用于在新的 Actions SDK 上进行交易的 conversationId
- regex - 正则表达式 - 如果被方括号包围,则删除数字
- common-lisp - CLOS 等价于析构函数
- amazon-web-services - AWS:使用 boto3 将连接添加到粘合作业