day8

jsonpath操作.py

#pip install jsonpath

import jsonpath
s={"ec":0,"errcode":0,"em":"","cache":0,"adm_num":3,"levelname":None,"mems":[{"uin":511402865,"role":0,"g":0,"join_time":1589360442,"last_speak_time":1600570983,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"\u671d\u82b1\u5915\u62fe","qage":14,"rm":0},{"uin":475566024,"role":1,"g":0,"join_time":1589360443,"last_speak_time":1596195430,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"CC","qage":15,"rm":1},{"uin":616745045,"role":1,"g":0,"join_time":1589360443,"last_speak_time":1589360443,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"\u5927\u5e08\u5144","qage":14,"rm":1},{"uin":1473732204,"role":1,"g":0,"join_time":1589360443,"last_speak_time":1596699591,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"\u5b89\u5927\u53d4","qage":10,"rm":1},{"uin":1930890111,"role":2,"g":-1,"join_time":1589360638,"last_speak_time":1589363741,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"56","qage":9,"rm":1},{"uin":549313033,"role":2,"g":0,"join_time":1590131830,"last_speak_time":1597542612,"lv":{"point":0,"level":1},"card":"\u767d\u5b87\u9e4f","tags":"-1","flag":0,"nick":"\u79e6\u6b87","qage":12,"rm":1},{"uin":121654011,"role":2,"g":1,"join_time":1591326665,"last_speak_time":1597549705,"lv":{"point":0,"level":1},"card":"\u8e6d\u8bfe-\u66f9\u4e3a\u7f8e","tags":"-1","flag":0,"nick":"\u265dAimee\u00b7Too\u2740","qage":14,"rm":1},{"uin":411732604,"role":2,"g":1,"join_time":1591326665,"last_speak_time":1591584091,"lv":{"point":0,"level":1},"card":"","tags":"-1","flag":0,"nick":"\u4e09\u53f6\u8349\u7684\u624b\u6307","qage":14,"rm":1},{"uin":690763103,"role":2,"g":1,"join_time":1591326665,"last_speak_time":1599960754,"lv":{"point":0,"level":1},"card":"\u674e\u9ad8\u82f1","tags":"-1","flag":0,"nick":"\u4e24\u6b21\u65b9\u7684\u65cb\u5f8b","qage":12,"rm":1},{"uin":1522503760,"role":2,"g":0,"join_time":1591326665,"last_speak_time":1598146137,"lv":{"point":0,"level":1},"card":"\u79b9\u6881","tags":"-1","flag":0,"nick":"\u79b9\u6881","qage":9,"rm":1},{"uin":635763064,"role":2,"g":1,"join_time":1592997221,"last_speak_time":1600572109,"lv":{"point":0,"level":1},"card":"\u970d\u7d2b\u9633","tags":"-1","flag":0,"nick":"\u6f02\u6d41\u6d77\u5cb8","qage":13,"rm":1},{"uin":857566034,"role":2,"g":1,"join_time":1593329449,"last_speak_time":1600565621,"lv":{"point":0,"level":1},"card":"\u4ee3\u723d","tags":"-1","flag":0,"nick":"\u767d\u7fbd\u5f52\u697c","qage":12,"rm":1},{"uin":347158400,"role":2,"g":0,"join_time":1593345739,"last_speak_time":1599385077,"lv":{"point":0,"level":1},"card":"\u6731\u6210","tags":"-1","flag":0,"nick":"\u9ea6\u514b.vod","qage":16,"rm":1},{"uin":704096641,"role":2,"g":1,"join_time":1594023174,"last_speak_time":1600572110,"lv":{"point":0,"level":1},"card":"\u803f\u5a1f","tags":"-1","flag":0,"nick":"704096641","qage":13,"rm":1},{"uin":978502577,"role":2,"g":1,"join_time":1594883618,"last_speak_time":1599992058,"lv":{"point":0,"level":1},"card":"\u5f20\u4e39\u96ea","tags":"-1","flag":0,"nick":"\u3000\u3000Amour\u256e\u66ae\u5ff5","qage":9,"rm":1},{"uin":799614279,"role":2,"g":0,"join_time":1594884719,"last_speak_time":1600565607,"lv":{"point":0,"level":1},"card":"\u9c81\u6d25\u5065","tags":"-1","flag":0,"nick":"\u4e28\u5bd2\u5c10\u6708\u309e","qage":13,"rm":1},{"uin":695254152,"role":2,"g":0,"join_time":1594886366,"last_speak_time":1600572106,"lv":{"point":0,"level":1},"card":"\u738b\u7965\u9f99","tags":"-1","flag":0,"nick":"\u8ffd\u68a6\u8d64\u5b50\u5fc3","qage":13,"rm":1},{"uin":251202767,"role":2,"g":1,"join_time":1594943472,"last_speak_time":1600572310,"lv":{"point":0,"level":1},"card":"\u9ad8\u96ef","tags":"-1","flag":0,"nick":"\u7d2b\u8272\u7cbe\u7075","qage":16,"rm":1},{"uin":120617143,"role":2,"g":1,"join_time":1595481073,"last_speak_time":1596951515,"lv":{"point":0,"level":1},"card":"\u7b71","tags":"-1","flag":0,"nick":"\u6668\u98ce\u5915\u96e8","qage":18,"rm":1},{"uin":357084975,"role":2,"g":1,"join_time":1595817181,"last_speak_time":1600572106,"lv":{"point":0,"level":1},"card":"\u674e\u97e9\u97e9","tags":"-1","flag":0,"nick":"\u2581\u2581\u5e7b\u68a6\u541f\u8ff7\u60d1\u4e0d\u4f4f\u7684\u5fc3","qage":8,"rm":1},{"uin":296915611,"role":2,"g":-1,"join_time":1595927320,"last_speak_time":1600572383,"lv":{"point":0,"level":1},"card":"\u9b4f\u5f3a","tags":"-1","flag":0,"nick":"\u8def\u4eba\u7532@\u63d0\u4e0d\u8d77\u52b2","qage":13,"rm":1}],"count":48,"svr_time":1600572532,"max_count":200,"search_count":48,"extmode":0}

print(jsonpath.jsonpath(s,'$.max_count'))
print(jsonpath.jsonpath(s,'$..nick'))

# python嵌套字典比较velue值,取值
#取值
import types
allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}},
'Bob': {'ham sandwiches': 3, 'apple': 2},
'Carol': {'cups': 3, 'apple pies': 1}}
def dictget(dict1,obj,default=None):
for k,v in dict1.items():
if k == obj:
print(v)
else:
if type(v) is dict:
re=dictget(v,obj)
if re is not default:
print(re)
dictget(allGuests,'beijing')

#比较velue
def bijiaodict(dict1,dict2):
for k,v in dict1.items():
for k2,v2 in dict2.items():
if k==k2 and v==v2:
print('dict1=dict2')
else:
print('dict1!=dict2')
dict1={'2':'6'}
dict2={2:{1:{1:8}}}
bijiaodict(dict1,dict2)


# python字典嵌套字典的情况下获取某个key的value
# coding: utf-8
import types
# 获取字典中的objkey对应的值,适用于字典嵌套
# dict:字典
# objkey:目标key
# default:找不到时返回的默认值
def dict_get(dict, objkey, default):
tmp = dict
for k, v in tmp.items():
if k == objkey:
return v
else:
if type(v) is types.DictType:
ret = dict_get(v, objkey, default)
if ret is not default:
return ret
return default

# 例如
dicttest = {"result": {"code": "110002", "msg": "设备设备序列号或验证码错误"}}
ret = dict_get(dicttest, 'msg', None)
print(ret)

#写日志

from loguru import logger

#debug 调试信息 最低的级别,打印的非常详细
#info 正常的提示信息
#warning 警告信息
#error 出错了
#exception 程序出异常了

import sys
def fd():
logger.remove()#清楚她的默认设置
fmt = '[{time}][{level}][{file.path}:line:{line}:function_name:{function}] ||msg={message}' # level file function module time message
logger.add(sys.stdout,level='WARNING',format=fmt)#输出,咱们本地运行的时候,在控制台打印
logger.add('gw.log',level='INFO',encoding='utf-8',enqueue=True,rotation='1 mb')#写在日志文件里面
#enqueue = True 异步写日志 #同步
#队列
#消息队列
logger.debug('程序开始运行')
logger.debug('开始连接数据库')
logger.info('mySQL')
logger.warning('警告,空间不足了')
logger.error('程序出错了')

fd()
posted @ 2020-10-14 20:04  xianfeng1224  阅读(408)  评论(0)    收藏  举报