response.text == response.content.decode("utf-8")
response.json() == json.loads(response.text)
json.dump(res, fp=fp, ensure_ascii=False)
ensure_ascii=False 的作用是落盘的中文数据可以直接展示:
{"errno": 0, "data": [{"k": "狗", "v": "名. [动] dog; a surname 形. [骂] (该死的;可恶的) damned; cur"}, {"k": "狗刨", "v": "(一种游泳姿势) dog paddle"}, {"k": "狗吠", "v": "bark"}, {"k": "狗屁", "v": "nonsense ; rubbish; [骂] horseshit"}, {"k": "狗屋", "v": "kennel; [电影]Doghouse"}]}
否则展示成:
{"errno": 0, "data": [{"k": "\u72d7", "v": "\u540d. [\u52a8] dog; a surname \u5f62. [\u9a82] \uff08\u8be5\u6b7b\u7684\uff1b\u53ef\u6076\u7684\uff09 damned; cur"}, {"k": "\u72d7\u5228", "v": "\uff08\u4e00\u79cd\u6e38\u6cf3\u59ff\u52bf\uff09 dog paddle"}, {"k": "\u72d7\u5420", "v": "bark"}, {"k": "\u72d7\u5c41", "v": "nonsense ; rubbish; [\u9a82] horseshit"}, {"k": "\u72d7\u5c4b", "v": "kennel; [\u7535\u5f71]Doghouse"}]}
本质原因是ascii 一共就200多个字符,不能表达中文,中文会以ascii码的形式展示出来