Python 3: not serializable 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 

I have a program that adds this to a JSON string, which works great for most text strings, but not in all likelihood. Can you say why not, or how to fix it?

+16
source share
2 answers

This is not a string, but a sequence of bytes. JSON only knows how to handle Unicode strings, not byte sequences. Either convert to Unicode ( json.dumps(x.decode("utf-8")) ), or to an integer array ( json.dumps(list(x)) ).

+30
source

Consider installing and using simplejson , which can handle byte strings in addition to unicode, to install it, use the command below:

 pip3 install simplejson 

Use in code:

 import simplejson as json json.dumps({b'name': b'dev'}) 
+5
source

Source: https://habr.com/ru/post/1245741/


All Articles