Python 3: не является сериализуемым JSON

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\ 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, которая отлично подходит для большинства текстовых строк, но не по всей видимости. Можете ли вы сказать, почему нет, или как его исправить?

Ответ 1

Это не строка, а последовательность байтов. JSON знает только, как обрабатывать строки Unicode, а не байтовые последовательности. Либо преобразовать в Unicode (json.dumps(x.decode("utf-8"))), либо в целочисленный массив (json.dumps(list(x))).

Ответ 2

Рассмотрите возможность установки и использования simplejson, который может обрабатывать байтовые строки в дополнение к unicode, чтобы установить его, используйте команду ниже:

pip3 install simplejson

Использование в коде:

import simplejson as json

json.dumps({b'name': b'dev'})