json数据处理方法

json多个字典(单键值对)按照value排序

list1 = [{"A":9}, {"B":2}, {"C":5}, {"D":2}]

dict1 = {}
for i in list1:
    dict1.update(i)        #    合并成  {'A': 9, 'B': 2, 'C': 5, 'D': 2}

s = sorted(dict1.items(), key=lambda item:item[1], reverse=True)

list2 = [{i[0] : i[1]} for i in s]

print(list2)
----------------------------------
	结果是:
	[{'A': 9}, {'C': 5}, {'B': 2}, {'D': 2}

sort 和 sorted

sort    ------列表排序  list1.sort()     该方法不能用于字典排序
sorted  ------list2 = sorted(list1)      dict2 = sorted(dict1)    可用于字典、列表、元组、以及下面说的数据排序,得有新的接收值


字典的dict.items()  是一个类似于元组的数据
	dict1  -------------------     {'A': 9, 'B': 2, 'C': 5, 'D': 2}
	
	dict1.items()  ------------------  dict_items([('A', 9), ('B', 2), ('C', 5), ('D', 2)])

json数据中按某个key进行排序的方法

json = [{"time":3,"value":"c"}, {"time":11,"value":"a"}, {"time":7,"value":"b"}]
json.sort(key=lambda x:x["time"], reverse=True)
print(json)

json相同key合并相加value值

list1 = [{"A":1}, {"B":2}]

list2 = [{"A":3}, {"B":4}]

list3 = []
for i,j in zip(list1,list2):
    dict1 = {
       list(i.keys())[0] : i[list(i.keys())[0]] + j[list(i.keys())[0]]
    }
    list3.append(dict1)

print(list3)
————————————————————————————————
结果是:
[{'A': 4}, {'B': 6}]

列表一个小算法

a = [1,2,3,4,5,6]
b = [1,2,3,7,8]
print([x for x in a if x not in b])

------------------------
[4,5,6]

按照不同的 level 分成不同的列表

element_list = [
                {"level":1, "age":77}, 
                {"level":1, "age":51}, 
                {"level":2, "age":18}, 
                {"level":3, "age":26}
                      ]
dict1 = {}
for element in element_list:
    dict1[element['level']] = dict1.get(element['level'], []) + [element]

print(dict1)
-------------------打印结果
{
	1: [{'level': 1, 'age': 77}, {'level': 1, 'age': 51}], 
 	2: [{'level': 2, 'age': 18}], 
 	3: [{'level': 3, 'age': 26}]
 	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值