Python 3:无法JSON序列化

问题描述 投票:19回答:2
TypeError: b'Pizza is a flatbread generally topped with tomato sauce and cheese and baked in an oven. It is commonly topped with a selection of meats, vegetables and condiments. The term was first recorded in the 10th century, in a Latin manuscript from Gaeta in Central Italy. The modern pizza was invented in Naples, Italy, and the dish and its variants have since become popular in many areas of the world.\nIn 2009, upon Italy\'s request, Neapolitan pizza was safeguarded in the European Union as a Traditional Speciality Guaranteed dish. The Associazione Verace Pizza Napoletana (the True Neapolitan Pizza Association) is a non-profit organization founded in 1984 with headquarters in Naples. It promotes and protects the "true Neapolitan pizza".\nPizza is sold fresh, frozen or in portions, and is a common fast food item in North America and the United Kingdom. Various types of ovens are used to cook them and many varieties exist. Several similar dishes are prepared from ingredients commonly used in pizza preparation, such as calzone and stromboli.' is not JSON serializable

我有一个程序,可以将其添加到JSON字符串中,该字符串对大多数文本字符串都适用-但显然不是这样。您能说出为什么不可以,或者如何解决吗?

python python-3.x
2个回答
34
投票

这不是字符串,而是字节序列。 JSON仅知道如何处理Unicode字符串,而不知道字节序列。要么转换为Unicode(json.dumps(x.decode("utf-8"))),要么转换为整数数组(json.dumps(list(x)))。


8
投票

考虑安装和使用simplejson,它可以处理除Unicode以外的字节字符串,请使用以下命令进行安装:

pip3 install simplejson

在代码中的用法:

import simplejson as json

json.dumps({b'name': b'dev'})
© www.soinside.com 2019 - 2024. All rights reserved.