Python 处理带有 \u 的字符串

最近遇到一个头疼的问题,用socket接收到一个字符串,格式如下:

{“trade_status”: {“desc”: “\u30106\u3011 - \u8d22\u52a1\u7ed3\u7b97\u5df2\u5b8c\u6210 “}}/end/

其中含有一段含有\u的编码字串,怎么将其转化为汉字。

decode().encode(‘utf-8’) 不行,decode、encode半天搞不定,后来偶然发现,在decode时可以选则unicode-escape,代码如下:

# -*- coding: utf-8 -*-

import socket

if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect(('192.168.6.63', 10001))

    sock.send('[{"action": "trade_status"}]')
    rec = sock.recv(1024)
    print rec
    print rec.decode('unicode-escape').encode('utf-8')
    print rec.decode('raw_unicode-escape').encode('utf-8')

    sock.close()

输出结果:

{"trade_status": {"desc": "\u30101\u3011 - \u4ea4\u6613\u4e2d "}}/**end**/
{"trade_status": {"desc": "【1】 - 交易中 "}}/**end**/
{"trade_status": {"desc": "【1】 - 交易中 "}}/**end**/
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 可以使用 Python 内置的 `json` 模块来实现。 首先,你需要导入 `json` 模块: ``` import json ``` 然后,你可以使用 `json.dumps()` 函数将字典转换为 JSON 字符串: ``` data = { "name": "John", "age": 30, "city": "New York" } json_str = json.dumps(data, ensure_ascii=False) print(json_str) ``` 输出结果: ``` {"name": "John", "age": 30, "city": "New York"} ``` `json.dumps()` 函数的第二个参数 `ensure_ascii` 用于控制是否以 ASCII 编码输出,如果设置为 `False`,则可以输出中文字符。 ### 回答2: Python中可以使用内置的json模块将字典格式转化为JSON字符串。 首先,导入json模块: ```python import json ``` 然后,定义一个字典对象: ```python data = {'name': 'Alice', 'age': 25, 'city': 'New York'} ``` 接下来,使用json.dumps()方法将字典对象转化为JSON字符串: ```python json_string = json.dumps(data) ``` 最后,可以打印输出JSON字符串: ```python print(json_string) ``` 以上代码将输出如下结果: ```python {"name": "Alice", "age": 25, "city": "New York"} ``` 另外,如果想要保留缩进或排序,可以在调用dumps()方法时传入额外的参数。例如,将缩进设置为4个空格: ```python json_string = json.dumps(data, indent=4) ``` 或者按照字母顺序排序键: ```python json_string = json.dumps(data, sort_keys=True) ``` 这样可以得到带有缩进或排序的JSON字符串。 需要注意的是,如果字典中的值包含了不支持JSON序列化的类型(如函数、类等),则会引发TypeError异常。 ### 回答3: 在Python中,可以使用内置的`json`模块将字典对象转换为JSON格式的字符串。使用`json.dumps()`方法可以将字典转换为JSON字符串。 下面是一个示例代码: ```python import json # 创建一个字典对象 person = { "name": "张三", "age": 25, "city": "北京" } # 将字典转换为JSON字符串 json_str = json.dumps(person) # 输出JSON字符串 print(json_str) ``` 运行代码后,将会输出以下内容: ```json {"name": "\u5f20\u4e09", "age": 25, "city": "\u5317\u4eac"} ``` 在输出结果中,你会看到字典的键和值已经被转换为相应的JSON格式。如果希望输出时中文字符正常显示,可以添加`ensure_ascii=False`参数,例如`json_str = json.dumps(person, ensure_ascii=False)`。 需要注意的是,如果字典中包含不支持JSON序列化的数据类型,如`datetime`对象,转换过程将会出错。在这种情况下,可以使用自定义的处理函数或类扩展`JSONEncoder`类来序列化这些特殊对象。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值