python - 如何在python3中json.dumps字节对象

标签 python json python-3.x python-2.x

在python2中

import json
a = {"text": u"你好".encode("gbk")}
json.dumps(a, ensure_ascii=False)

>>> Out: '{"text": "\xc4\xe3\xba\xc3"}'

我想在 python3 中获得相同的“Out”:

import codecs
byte_obj = "你好".encode("gbk")
x = byte_obj.decode("utf8", "backslashreplace") # ops, it become '\\xc4\\xe3\\xba\\xc3'
x = codecs.escape_encode(byte_obj)[0] # ops, it become b'\\xc4\\xe3\\xba\\xc3'

# fail, I have to concatenate them

b'{"text": "' + u"你好".encode("gbk") + b'"}'

>>> Out: b'{"text": "\xc4\xe3\xba\xc3"}'

在Python3中,如果有办法转换

{"text": "你好"}  # first, encoding with gbk, then json.dumps 

b'{"text": "\xc4\xe3\xba\xc3"}'  # json serialized result

最佳答案

如果你真的想在 Python 3 中进行 GBK 编码:

import json
a = {"text": u"你好"}
print(json.dumps(a, ensure_ascii=False).encode('gbk'))

b'{"text": "\xc4\xe3\xba\xc3"}'

关于python - 如何在python3中json.dumps字节对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44449140/

相关文章:

python - 为 Python 2.7 安装 Qt5 和 PyQt5

javascript - 如何通过postmessage发送json

java - 通过gson将复杂的json对象转换为java对象

windows - 在 Anaconda Prompt 中访问文件时权限被拒绝

python-3.x - 在 Azure 数据工厂中执行 Databricks Notebook 给出 : Operation on target Notebook1 failed

python3 : bind method to class instance with . __get__(),它有效,但为什么呢?

python - 如何将带有空格分隔整数的多行字符串拆分为每行的列表列表

python - 关闭文件对话框后 Tkinter 窗口不关闭

php - 使用 PHP 将数据库数据编码为 JSON

python - distutils `Command` 应该如何返回非零退出代码?