字典(键值为不等长字典)、列表嵌套字典转为DataFrame类型,DataFrame类型转为json格式数据

待转换数据

classification = {
    "1":["1","2","3","4","5","6","7","8","9","10","11"],
    "2":["16","17","18"],
    "3":["22","23","24","25","26","27A"],
    "4":["28","29","30","31","32"],
    "5":["35","36","37","38","39","40","41","42","44","45","46"],
    "6":["50","51","52","54","55","56","57","58","59","60"],
}
class_label = [
    {"1":"学生个人基础信息"},
    {"2":"学生个人辅助信息"},
    {"3":"学生学籍基本信息"},
    {"4":"学生个人联系信息"},
    {"5":"学生个人扩展信息"},
    {"6":"学生家庭成员或监护人信息一"},
]

程序代码

程序主要借助zip函数与列表表达式转换,将给定转换为json需转经DataFrame格式,orient='records',force_ascii=False

import pandas as pd
a= [list(class_label[i].values())[0] for i in range(len(class_label))]

for key ,value in classification.items():
   print(key,value)

b= [list(value) for value in classification.values()]
c = [list(key)[0] for key in classification.keys()]
d = zip(a,b,c)
e = pd.DataFrame(list(zip(c,a,b)),columns=['idx','name','value'])
ee=e.to_json(orient='records',force_ascii=False)

print('a:%s'%a)
print('b:%s'%b)
print('c:%s'%c)
print('d:%s'%d)
print('e:%s'%e)
print('ee:%s'%ee)

运行结果:

1 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']
2 ['16', '17', '18']
3 ['22', '23', '24', '25', '26', '27A']
4 ['28', '29', '30', '31', '32']
5 ['35', '36', '37', '38', '39', '40', '41', '42', '44', '45', '46']
6 ['50', '51', '52', '54', '55', '56', '57', '58', '59', '60']

a:['学生个人基础信息', '学生个人辅助信息', '学生学籍基本信息', '学生个人联系信息', '学生个人扩展信息', '学生家庭成员或监护人信息一']

b:[['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'], ['16', '17', '18'], ['22', '23', '24', '25', '26', '27A'], ['28', '29', '30', '31', '32'], ['35', '36', '37', '38', '39', '40', '41', '42', '44', '45', '46'], ['50', '51', '52', '54', '55', '56', '57', '58', '59', '60']]

c:['1', '2', '3', '4', '5', '6']

d:<zip object at 0x0000020A7DDDB3C8>

e:  idx           name                                         value
0   1       学生个人基础信息           [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
1   2       学生个人辅助信息                                  [16, 17, 18]
2   3       学生学籍基本信息                     [22, 23, 24, 25, 26, 27A]
3   4       学生个人联系信息                          [28, 29, 30, 31, 32]
4   5       学生个人扩展信息  [35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46]
5   6  学生家庭成员或监护人信息一      [50, 51, 52, 54, 55, 56, 57, 58, 59, 60]

ee:[{"idx":"1","name":"学生个人基础信息","value":["1","2","3","4","5","6","7","8","9","10","11"]},{"idx":"2","name":"学生个人辅助信息","value":["16","17","18"]},{"idx":"3","name":"学生学籍基本信息","value":["22","23","24","25","26","27A"]},{"idx":"4","name":"学生个人联系信息","value":["28","29","30","31","32"]},{"idx":"5","name":"学生个人扩展信息","value":["35","36","37","38","39","40","41","42","44","45","46"]},{"idx":"6","name":"学生家庭成员或监护人信息一","value":["50","51","52","54","55","56","57","58","59","60"]}]

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 DataFrame 转换字典格式,你可以使用 `to_dict()` 方法。`to_dict()` 方法有几个参数可以控制转换的方式。以下是一些示例: 1. 将整个 DataFrame 转换字典,其中列名作为键,默认情况下索引也包含在字典中: ```python dict_data = df.to_dict() ``` 2. 将每一列转换字典,其中列名作为键: ```python dict_data = df.to_dict('series') ``` 3. 将每一行转换字典,其中索引作为键: ```python dict_data = df.to_dict('index') ``` 4. 将每个单元格转换字典,其中元组 `(行, 列)` 作为键: ```python dict_data = df.to_dict('split') ``` 你可以根据你的需求选择适合的转换方式,并将其赋值给 `dict_data` 变量。请注意,这些转换方法的默认行为可能不适合所有情况,你可以根据需要使用不同的参数来自定义转换。 以下是一个示例,将 DataFrame 按行转换字典(索引作为键): ```python import pandas as pd # 示例 DataFrame data = { 'Name': ['John', 'Alice', 'Bob'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris'] } df = pd.DataFrame(data) # 将 DataFrame 按行转换字典 dict_data = df.to_dict('index') # 输出字典数据 print(dict_data) ``` 在这个示例中,我们首先创建了一个示例的 DataFrame。然后,使用 `to_dict('index')` 方法将 DataFrame 按行转换字典,并将其赋值给 `dict_data` 变量。最后,我们打印输出了转换后的字典数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值