【Python】json取值封装
一、json取值封装模块
# -*- coding: UTF-8 -*- from logzero import logger def get_value(body, columns): if isinstance(body, dict): body = body try: if len(columns) > 0: if '.' in columns: columns_list = columns.split('.') for key in columns_list: if key.isdigit(): body = body[int(key)] else: body = body[key] else: body = body[column] result = body return result else: return '请输入取值字段!' except: return '取值字段输入有误!' if __name__ == '__main__': json1 = { "code": "000000", "description": "SUCCESS", "data": { "total": 2, "size": 10, "current": 1, "pages": 2, "records": [{ "id": "1522757322021111111", "ddcId": 1, "number": "911111", "name": "北京xxxx有限公司ORA", "createTime": "2022-05-07 09:56:51", "address": "北京市朝阳区xx路xx号", }, { "id": "1522757322151222222", "ddcId": 10, "number": "932222", "name": "南平市xxxx有限公司", "createTime": "2022-05-07 09:56:52", "address": "南平市建阳区xx路xx号", }] } } # 正常取值字段 column = 'data.records.0.name' res = get_value(json1, column) logger.info(res) # 错误取值字段-取值字段为空 column = '' res = get_value(json1, column) logger.info(res) # 错误取值字段-取值字段包含不存在的key column = 'data.records.2.name' res = get_value(json1, column) logger.info(res)
二、扩展-json控制台格式化输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | if __name__ == '__main__' : json1 = { "code" : "000000" , "description" : "SUCCESS" , "data" : { "total" : 2, "size" : 10, "current" : 1, "pages" : 2, "records" : [{ "id" : "1522757322021111111" , "ddcId" : 1, "number" : "911111" , "name" : "北京xxxx有限公司ORA" , "createTime" : "2022-05-07 09:56:51" , "address" : "北京市朝阳区xx路xx号" , }, { "id" : "1522757322151222222" , "ddcId" : 10, "number" : "932222" , "name" : "南平市xxxx有限公司" , "createTime" : "2022-05-07 09:56:52" , "address" : "南平市建阳区xx路xx号" , }] } } # 控制台格式化输出 import json json_dicts = json.dumps(json1, indent=4, ensure_ascii=False) logger.info(json_dicts) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix