将assic编码的json字符串转化为utf-8编码的json字符串

来源:互联网 发布:医学图像算法工程师 编辑:程序博客网 时间:2024/06/05 23:51

一、导入模块

import urllib.requestimport urllib.parseimport json

二、指定url,构造headers,构造请求参数

  • 1.指定url
url = 'http://fanyi.baidu.com/v2transapi'
  • 2.构造headers
headers = {    'Host': 'fanyi.baidu.com',    'Connection': 'keep-alive',    # 'Content-Length': '7',  不能固定长度    'Accept': 'application/json, text/javascript, */*; q=0.01',    'Origin': 'http://fanyi.baidu.com',    'X-Requested-With': 'XMLHttpRequest',    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',    'Referer': 'http://fanyi.baidu.com/translate',    # 'Accept-Encoding': 'gzip, deflate', #不接受压缩文件    'Accept-Language': 'zh-CN,zh;q=0.9',    'Cookie': 'BIDUPSID=9F5816DD3088F4291EA4C12FFC2ABCDE; BAIDUID=78AF1CE91C8F84BD601F6E2778C618DA:FG=1; PSTM=1513827071; FP_UID=49cb193525cef45caf0af69c1e64ccf6; BDRCVFR[DDAxsax1-qs]=mk3SLVN4HKm; H_PS_PSSID=1454_21125_25177; PSINO=2; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; locale=zh; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1514168525; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1514168525; to_lang_often=%5B%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%2C%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%5D; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; from_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D',}
  • 3.构造请求参数(参数格式与真实参数一致,可通过抓包工具观察)
word = 'wolf'data = {    'from': 'en',    'to': 'zh',    'query': word,    'transtype': 'realtime',    'simple_means_flag': '3',}data = urllib.parse.urlencode(data).encode('utf-8')

三、模拟请求

request = urllib.request.Request(url=url,headers=headers,data=data)

四、发送请求

reponse = urllib.request.urlopen(request)

五、获取结果(结果显示,获取的数据为assii编码)

result = reponse.read().decode('utf-8')

六、存储数据结果(需要将assii编码转化为utf-8)

  • 1.将json格式的字符串转化为python对象
obj = json.loads(result)
  • 2.将python对象转为json格式字符串,注意,要添加第二个参数,禁用ascii编码
string = json.dumps(obj,ensure_ascii=False)
  • 3.将字符串以utf-8格式写入文件
with open('wolf.json','w',encoding='utf-8') as f1:    f1.write(string)
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 求医不如求己 痛经 求医不如求己 咳嗽 中里巴人求医不如求己 开卷有益求医问药 求医问药软件 如何网上预约挂号 如何预约挂号 呼市医院排名 求和公式 表格求和 等差求和 求和 自动求和 wps求和 求和符号 word求和 求和快捷键 裂项求和 级数求和 求和函数 wps表格求和 等比求和 wps怎么求和 高斯求和 条件求和 公式求和 文档求和 筛选求和 表格怎么求和 等比求和公式 表格自动求和 表格求和公式 wps表格怎么求和 级数求和公式 word表格求和 等比级数求和公式 高斯求和公式 自动求和快捷键 等比等差求和公式 递增数列求和公式 表格如何求和