Python:将字典转换为字节

2024-04-30

我正在尝试将字典转换为字节,但在将其转换为正确的格式时遇到问题。

首先,我尝试使用自定义架构映射字典。模式定义如下 -

class User:
    def __init__(self, name=None, code=None):
        self.name = name
        self.code = code

class UserSchema:
    name = fields.Str()
    code = fields.Str()

@post_load
 def create_userself, data):
    return User(**data)

我的字典结构如下-

user_dict = {'name': 'dinesh', 'code': 'dr-01'} 

我正在尝试使用以下代码将字典映射到用户架构

schema = UserSchema(partial=True)
user = schema.loads(user_dict).data

在做的同时,模式.负载期望输入为 str、bytes 或 bytearray。以下是我将字典转换为字节所遵循的步骤

import json
user_encode_data = json.dumps(user_dict).encode('utf-8')
print(user_encode_data)

Output:

b'{"name ": "dinesh", "code ": "dr-01"}

如果我尝试使用架构进行映射,我将无法获得所需的架构对象。但是,如果我有下面给出的格式的输出,我就能够获得正确的模式对象。

b'{\n  "name": "dinesh",\n  "code": "dr-01"}\n'

有什么建议如何将字典转换为字节吗?


您可以使用indent选项中json.dumps()获得\n符号:

import json

user_dict = {'name': 'dinesh', 'code': 'dr-01'}
user_encode_data = json.dumps(user_dict, indent=2).encode('utf-8')
print(user_encode_data)

Output:

b'{\n  "name": "dinesh",\n  "code": "dr-01"\n}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:将字典转换为字节 的相关文章

随机推荐