直接上代码
import json
source_data = [
['王*龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞*飞', '北京市昌平区汇德商厦四楼403'],
['顾*锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'],
['王*飞', '上海市徐汇区上海市徐汇区H88越虹广场B座5E'],
['华*升', '北京市海淀区杰睿大厦'],
['朱*锴', '上海市浦东新区川沙新镇华川家园33号楼503'],
['陈*盼', '浙江省杭州市闲林街道,西溪华东园,十幢一单元401。'],
['司*鹏', '河南省鹤壁市淇滨大道310号 鹤壁京立医院'],
['聂*睿', '河北省石家庄市中山路勒泰中心写字楼b座11层'],
['张*', '辽宁省本溪市明兴丽城九号楼四单元'],
['冉*晗', '河北省石家庄市体育南大街385号'],
['高*杰', '北京市朝阳区广渠路42号院3号楼,408'],
['李*国', '安徽省合肥市新站区淮合花园'],
['常*源', '江苏省南京市白下路242号,南京市红十字医院,放射科'],
['张*玉', '河北省沧州市新居然家居广场'],
['朱*', '江苏省镇江市延陵镇'],
['段*', '山东省临沂市银雀山街道万阅城A座1207'],
['朱*', '北京市昌平区北京联合大学昌平校区'],
['陈*章', '北京市昌平区沙河镇白沙路汇德商厦老男孩教育'],
['肖*雅', '北京市昌平区沙河汇德商厦4楼老男孩儿教育'],
['赵*明', '北京市昌平区沙河顺沙路汇德商厦老男孩教育403'],
['邹*', '宁夏银川市上海路福州街口云峰盛大药房'],
['袁*', '辽宁省锦州市辽宁省凌海市国庆路33B号2单元23室'],
['陈*', '浙江省杭州市昌化电站里56号骏程瓷砖店'],
['索*辉', '辽宁省沈阳市浑南区创新路117号东软医疗系统有限公司'],
['李*', '北京市大兴区天宫院地铁站熙悦春天小区'],
['张*', '陕西省西安市电子城街道高新领域4号楼'],
['王*', '山西省吕梁市一家庄小区三期五号楼'],
['钟*', '陕西省商洛市商洛学院'],
['薛*', '江苏省泰州市口岸街道向阳北路94号农商行'],
['张*强', '甘肃省兰州市北滨河西路666号(中国移动甘肃分公司)'],
['张*锋', '内蒙古呼和浩特市双河镇莹昱佳苑商铺A段13号(防汛东巷莲爱粮油副食门市)'],
['刘*龙', '河南省洛阳市新一中文印室'],
['李*', '陕西省西安市临潼区西安科技大学'],
['徐*龙', '安徽省合肥市长江西路新加坡花园城4联排'],
['杨*杰', '山西省忻州市京原南路雷神网咖'],
['朱*北', '海南省海口市和平北路三亚上二街9号'],
['朱*', '浙江省杭州市龙湖春江郦城'],
['常*磊', '北京市海淀区学院南路59号'],
['王*阳', '江苏省南京市南京江宁21世纪现代城'],
['谢*星', '甘肃省酒泉市雄关路54号东风物流十号'],
['侯*', '河南省郑州市河南省郑州市高新区莲花街牡丹路西雅图荣邦城'],
['孙*康', '江苏省南京市化工园方水东路9号'],
['索*华', '北京市昌平区北七家镇东三旗村委会'],
['王*', '陕西省西安市十里铺街长力小区北门对面(王家辣子面)'],
['姜*生', '北京市朝阳区东大桥宫宵国际1103'],
['顾*生', '安徽省阜阳市清河西路100号阜阳师范学院'],
['申*伟', '上海市青浦区巷佳华苑三期10号楼904室'],
['刘*', '湖北省武汉市左岭新城1社区15栋'],
['单*成', '山东省日照市日照职业技术学院'],
['韩*红', '上海市杨浦区隆昌路619号10号楼二楼'],
['魏*琪', '北京市丰台区汉威国际广场4区12号楼'],
['杨*康', '北京市丰台区丰台科技园汉威广场12栋'],
]
# 自定义序列化函数,将列表转换为JSON数组对象
def serialize_list(lst):
return json.JSONEncoder().encode(lst).replace("[", "[", 1).replace("]", "]", 1)
reform = {}
for i in source_data:
province = i[1][:2] # 提取省份名称
if province not in reform:
reform[province] = []
reform[province].append(i)
# reform = {}
# provinces = set() #空集合
# for i in source_data:
# province = i[1][0:2] # 假设省份名称是地址的前两个字符
# provinces.add(province)
# reform.setdefault(province, []).append(i)
# 使用json.dumps()序列化reform字典,并设置indent参数为4以美化输出
# 同时使用default参数指定自定义序列化函数
formatted_output = json.dumps(reform, indent=4, default=serialize_list, ensure_ascii=False)
# 打印结果
print(formatted_output)