之前有用python3实现过tcp协议的,后来又实现了http协议的通信,今天公司想做一个功能自动测试系统,
下午弄了一会,发现json格式的实现可以更简单一点,代码如下:简单解说一下,一般与服务器通信分两块,一块是get协议,一块是post协议,
get协议很简单,直接就可访问了,post协议,实际上把data数据用起来,程序直接会自动辨别类型。
在写的过程中遇到3个问题:
1 在实现post协议时曾遇到错误,
大致说数据格式的问题,解决方法很简单,转为utf-8格式:bytes(data, 'utf8') ,
2 获取到的json数据遇到里面中文时遇到编码问题
发现表现出0xaa0xbb0xcc0xdd这样的编码,json加载时调用utf8即可,使用这一句代码:json.loads(rawtext.decode('utf8'))
3 打印出json时表现出一行很长很长的字符串
长长的字符串看了非常痛苦,根本看不清json里面各对像的关系,网上说用什么json.tool方法解决,不过那是针对命令行的,我这是在调试过程中还是希望直接打印出来,
采用如下代码:print (json.dumps(jsonStr, sort_keys=False, ensure_ascii= False, indent=2)) ,这里需要注意ensure_ascii必须为False,否则里面有中文时
看到的又是0xx什么的,indent=2表示格式化json显示,sort_keys则表示此json无需排序
#!/usr/bin/evn python3 #coding=utf-8 # 针对web端json协议的通信库,通信协议为json,传出的data为json格式,接收的数据也是json格式 # 外界调用时可先初始化web_json类,如下所示: # get调用 # web = web_json("http://baidu.com/") # params = "abcd/select/100000" # web.url_get(params) # # post调用 # web = web_json("http://baidu.com/") # params = "abcd/select/100000" # data = '{"name": "jack", "id": "1"}' # web.url_post(params, data) from urllib.request import urlopen from urllib.parse import quote import json class web_json: def __init__(self, base_url): self.base_url = base_url def get_url_data(self, params, data): web = urlopen(self.base_url + params, data) print (web.url) print ("status: " , web.status) rawtext = web.read() jsonStr = json.loads(rawtext.decode('utf8')) print (json.dumps(jsonStr, sort_keys=False, ensure_ascii= False, indent=2)) return jsonStr # get方法 def url_get(self, params): return self.get_url_data(params, None) # post方法 def url_post(self, params, data): data=bytes(data, 'utf8') return self.get_url_data(params, data)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]