You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将JSON Unicode响应转换为字符串?

如何将Python中的Unicode键值对JSON转换为普通字符串?

刚好碰到过类似的需求,给你几个实用的解决办法,根据你的Python版本来选就行:

1. 递归遍历转换(适合Python 2环境)

如果是在Python 2里,我们可以写一个递归函数,逐层遍历字典、列表里的所有元素,把带u前缀的Unicode字符串转换成普通的str类型:

def convert_unicode_to_str(data):
    if isinstance(data, dict):
        return {convert_unicode_to_str(key): convert_unicode_to_str(value) 
                for key, value in data.items()}
    elif isinstance(data, list):
        return [convert_unicode_to_str(element) for element in data]
    elif isinstance(data, unicode):
        return data.encode('utf-8')
    else:
        return data

# 测试你的数据
response = {u'connections': [{u'pair': [u'5', u'14'], u'routes': [[u'5', u'6', u'13', u'14'], [u'5', u'7', u'10', u'4', u'14']]}], u'succeeded': True}
converted_response = convert_unicode_to_str(response)
print(converted_response)

这个函数会自动处理所有嵌套的字典和列表,把每个Unicode字符串转成UTF-8编码的普通字符串,其他类型(比如布尔值True)会直接保留。

2. 用json模块一键转换(简单粗暴)

不想自己写递归?直接用Python内置的json模块序列化再反序列化,就能自动把所有Unicode转成普通字符串:

import json

response = {u'connections': [{u'pair': [u'5', u'14'], u'routes': [[u'5', u'6', u'13', u'14'], [u'5', u'7', u'10', u'4', u'14']]}], u'succeeded': True}
converted_response = json.loads(json.dumps(response))
print(converted_response)

这个方法的好处是不用关心数据的嵌套结构,json模块会帮你搞定所有层级的转换,唯一要注意的是如果数据里有JSON不能序列化的类型(比如自定义类实例)就不能用,但你的例子里都是基础类型,完全没问题。

3. Python 3环境下无需额外转换

如果你是在Python 3里操作,其实根本不用做任何转换!因为Python 3里的str本身就是Unicode类型,你看到的带u前缀的写法只是Python 2的语法残留,实际在Python 3中打印这个数据,输出就是你想要的不带u的格式,两种写法在Python 3里是完全等价的。

内容的提问来源于stack exchange,提问作者wyse12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:15:42