python - Python:将字典转换为字节
问题描述
我正在尝试将字典转换为字节,但在将其转换为正确格式时遇到问题。
首先,我正在尝试使用自定义模式映射字典。架构定义如下 -
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
这样做时,schema.loads期望输入是 str、bytes 或 bytearray。以下是将字典转换为字节的步骤
import json
user_encode_data = json.dumps(user_dict).encode('utf-8')
print(user_encode_data)
输出:
b'{"name ": "dinesh", "code ": "dr-01"}
如果我尝试使用架构进行映射,我将得不到所需的架构对象。但是,如果我有下面给出的格式的输出,我可以得到正确的模式对象。
b'{\n "name": "dinesh",\n "code": "dr-01"}\n'
任何建议如何将字典转换为字节?
解决方案
您可以使用indent
option injson.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)
输出:
b'{\n "name": "dinesh",\n "code": "dr-01"\n}'
推荐阅读
- python - 滚动框中的Python抓取元素
- java - 调试错误,nbjpdastart 不支持嵌套的“modulepath”元素
- ionic-framework - Ionic cordova build android 返回失败
- python - Apache Spark:执行程序卡在 Python 警告上
- javascript - Vanilla Javascript 手风琴功能
- r - 使用 dplyr/ggplot 将变量之间的交互传递给函数
- javascript - 停止执行进一步的代码
- html - CSS中类选择器使用的困惑
- javascript - 对纯 Js 中的选择标签选项执行 if else 吗?
- c# - 获取宿主程序数据的插件程序