Python将 Unicode 转换为 utf-8 格式

问题描述

在测试接口时,发现响应结果返回的是Unicode类型字符串,不方便问题查找与定位,因此想能否转换为 utf-8 格式字符串

import requests
import re
ConfigResponse = requests.get("https://newb2f.wonmore.com/api/v4/shop/config").text
print(ConfigResponse)
>>>{"status":"success","data":{"shop_name":"\u592e\u8054\u670d\u9970","shop_title":"\u592e\u8054\u670d\u9970","shop_desc":"","shop_keywords":"\u592e\u8054\u670d\u9970","shop_logo":"https:\/\/wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\/images\/common\/shop_logo.png","shop_reg_closed":"0","lang":"zh-CN","stats_code":"","search_keywords":"\u886c\u886b,\u5939\u514b","wap_logo":"https:\/\/wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\/images\/wap_logo.png","register_article_id":"","buyer_cash":"100","buyer_recharge":"21","bonus_ad":{"ad_link":"","popup_ads":"","open":0},"mp_checked":true},"time":1609984754}

解决方法

只需要一句话即可转换成功,需要注意的是,转换过程可能会报错,因此可能需要正则将部分字符串进行替换

str.encode('utf-8').decode("unicode_escape")

这是替换之后再转码的结果,中文显示正常

NewResponse = re.sub(r"/","",ConfigResponse)
print(NewResponse)
>>>{"status":"success","data":{"shop_name":"\u592e\u8054\u670d\u9970","shop_title":"\u592e\u8054\u670d\u9970","shop_desc":"","shop_keywords":"\u592e\u8054\u670d\u9970","shop_logo":"https:\\wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\images\common\shop_logo.png","shop_reg_closed":"0","lang":"zh-CN","stats_code":"","search_keywords":"\u886c\u886b,\u5939\u514b","wap_logo":"https:\\wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\images\wap_logo.png","register_article_id":"","buyer_cash":"100","buyer_recharge":"21","bonus_ad":{"ad_link":"","popup_ads":"","open":0},"mp_checked":true},"time":1609984754}

print(NewResponse.encode('utf-8').decode("unicode_escape"))
>>>{"status":"success","data":{"shop_name":"央联服饰","shop_title":"央联服饰","shop_desc":"","shop_keywords":"央联服饰","shop_logo":"https:\wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\images\common\shop_logo.png","shop_reg_closed":"0","lang":"zh-CN","stats_code":"","search_keywords":"衬衫,夹克","wap_logo":"https:\wo-fushi.oss-cn-zhangjiakou.aliyuncs.com\images\wap_logo.png","register_article_id":"","buyer_cash":"100","buyer_recharge":"21","bonus_ad":{"ad_link":"","popup_ads":"","open":0},"mp_checked":true},"time":1609984754}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西门一刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值