数据格式转换

import json
from decimal import Decimal

def dict_sort(dict,reverse=False):
'''
输入字典,按key的ASCII排序,
:param dict:
:param reverse:False-顺序;True-倒叙
:return:
'''
list=sorted(dict.keys(),reverse=reverse)
new_dict={}
for item in list:
new_dict[item]=dict[item]

return new_dict

def round_num(num,digits=2):
'''
四舍六入五求平的原则,默认保留2位小数
:param num:
:param digits:
:return:
'''
a=round(float(num), digits)
return a

def remove_exponent(num):
return num.to_integral() if num == num.to_integral() else num.normalize()

def get_list_values(list1,key2):
'''
从一个list中,获取所有dict中指定key的value
:param list1:
:param key2:
:return:list类型
'''
values = []
if list1:
if len(list1) > 0:
for k in list1:
v = k[key2]
values.append(v)
return values

def lista_is_in_listb(lista,listb):
'''
两个list,判断lista中的元素是否在listb中,并返回存在的元素
:param lista:
:param listb:
:return:
'''

element = list(set(lista) & set(listb))
return element

def dict_to_query_text(dict_data):
'''
把字典按ascii排序后,转换成key=[value]&key=[value]形式
如:{"aq":"wee","as":"eee"} -》aq=[wee]&as=[eee]
:param dict_data:
:return:
'''
if dict_data:
ascii_data = dict_sort(dict_data)
list_data = []
for k, v in ascii_data.items():
data = k + '=[' + str(v) + ']'
list_data.append(data)
data = '&'.join(list_data)
else:
data=dict_data
return data

def count_list_dic_fields(list_dic,list_fieds):
'''
把一个list中,指定字段的值 求和,输出字典
如:[{"aq":"1","as":"2"},{"aq":"4","as":"4"}]-->{"aq":"5","as":"6"}
:param list_dic: [dict1,dict2,dict3]
:param list_fieds: ['fidle1','fidle2']
:return:dict
'''
dict_data={}
for field in list_fieds:
a = 0
for dics in list_dic:
if field in dics.keys():
if dics[field]:
a=a+float(dics[field])
dict_data[field]=a
return dict_data

if __name__=='__main__':
data= ['239490450428613', '239490450432709']
data3=[{"aq":"1.2","as":"1.4"},{"aq":"0","as":"3","w":"4"}]
a=count_list_dic_fields(data3,["aq","w"])
print(a)

posted @ 2023-04-28 10:30  溪棱  阅读(69)  评论(0)    收藏  举报