我正在开发一个微服务项目,我使用Python作为语言,RabbitMQ作为消息代理。我正在开发一个App Store应用程序,我面临着这样一个问题:前端应该以JSON格式向我发送一些数据,其中包括(应用程序的名称-〉字符串,应用程序的标题-〉字符串,应用程序的一个或多个图像-〉图像....),并且将通过RabbitMQ作为请求发送,后端应该使用该请求并将这些数据存储在Mongodb数据库中,然后返回一个响应,例如{“Success”:false}。
我尝试了很多方法,我知道如何在数据库中存储图像,但我不知道如何在JSON中发送图像数据,我尝试了base64编码,utf8,latin 1但是都不起作用,因为type bytes不是JSON可序列化的,就像错误说的那样。我在互联网上搜索了很多,但是我没有找到我想要的。我在寻找,虽然有时也有类似的问题,但我几乎尝试了一切,他们没有提供我在寻找什么。
data = {
"tool_owner": "John",
"developer": "John",
"icon": # icon of the app,
"images": # list of images,
"rating": {"user": "daniel", "date": str(now), "number": 5},
}
d = json.dumps(data) # this is my goal. to send the data as a JSON
temp = json.loads(d) # and receive it in the backend and parse it so I
can retrieve the data and store it in mongodb
在第一次,我面对这个错误:
TypeError:bytes类型的对象不是JSON可序列化的。
我试着看看如何将字节转换为字符串,以便可以在JSON中发送它,但我发现不适合我,因为我尝试了base64编码和latin 1编码...
1条答案
按热度按时间uwopmtnx1#
您的字典必须包含Bytes对象,这是JSON标准不支持的。
您可以使用
jsonextra
进行序列化/反序列化来解决此问题。$ pip install jsonextra
个如需详细信息,请参阅https://github.com/den4uk/jsonextra。