围绕序列化库的便利包装,用于处理常见任务。
项目描述
概述
这看起来熟悉吗?
>>> import json >>> from datetime import date >>> MY_DATA = {'foo': 123, 'bar': date(2018, 5, 22)} >>> json.dumps(MY_DATA) Traceback (most recent call last): ... TypeError: datetime.date(2018, 5, 22) is not JSON serializable
当您的序列化工具不知道如何处理自定义类时,这并不是什么问题,但当它们无法处理内置和/或常见的数据类型时,这会让人感到烦恼。因此,诞生了 basicserial。
此软件包是常见序列化工具的薄包装,当与JSON、YAML和TOML一起工作时,可以为您执行以下操作
自动将以下类型序列化为常识性表示
类型
JSON
YAML
TOML
数组
序列
数组
数组
序列
数组
数字
浮点数
浮点数
字符串
字符串
字符串
字符串(ISO 8601)
时间戳
字符串(ISO 8601)
字符串(ISO 8601)
字符串(ISO 8601)
字符串(ISO 8601)
字符串(ISO 8601)
时间戳
字符串(ISO 8601)
字符串
字符串
字符串
对象
映射
键/值
对象
映射
键/值
对象
映射
键/值
对象
映射
键/值
数组
序列
数组
字符串
字符串
字符串
字符串
字符串
字符串
可以根据其类型适当序列化 Enum 成员。
可以自动将日期、时间和datetime反序列化为原生Python对象。
提供简单的标志以生成“美观”的字符串。
用法
要使用此包,请从 PyPI 安装它(pip install basicserial)。然后,确保您安装了 basicserial 想要使用的序列化包。
对于 YAML,它支持 PyYAML 和 ruamel.yaml。
对于 JSON,它支持 Python 内置的 json 模块、simplejson、orjson、rapidjson、ujson、hyperjson 和 pysimdjson。
basicserial 将自动查找一个包来使用,但如果您想使用特定的包,可以通过将包名通过函数的 pkg 参数来指定。
JSON
>>> print(basicserial.to_json(MY_DATA)) {"foo": 123, "bar": "2018-05-22"} >>> print(basicserial.to_json(MY_DATA, pretty=True)) { "foo": 123, "bar": "2018-05-22" } >>> basicserial.from_json(basicserial.to_json(MY_DATA)) {u'foo': 123, u'bar': datetime.date(2018, 5, 22)} >>> basicserial.from_json(basicserial.to_json(MY_DATA), native_datetimes=False) {u'foo': 123, u'bar': u'2018-05-22'}
YAML
>>> print(basicserial.to_yaml(MY_DATA)) {bar: 2018-05-22, foo: 123} >>> print(basicserial.to_yaml(MY_DATA, pretty=True)) bar: 2018-05-22 foo: 123 >>> basicserial.from_yaml(basicserial.to_yaml(MY_DATA)) {u'foo': 123, u'bar': datetime.date(2018, 5, 22)} >>> basicserial.from_yaml(basicserial.to_yaml(MY_DATA), native_datetimes=False) {'foo': 123, 'bar': u'2018-05-22'}
TOML
>>> print(basicserial.to_toml(MY_DATA)) foo = 123 bar = "2018-05-22" >>> print(basicserial.to_toml(MY_DATA, pretty=True)) foo = 123 bar = "2018-05-22" >>> basicserial.from_toml(basicserial.to_toml(MY_DATA)) {u'foo': 123, u'bar': datetime.date(2018, 5, 22)} >>> basicserial.from_toml(basicserial.to_toml(MY_DATA), native_datetimes=False) {u'foo': 123, u'bar': u'2018-05-22'}
许可证
该项目以 MIT 许可协议 发布。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪一个,请了解有关 安装包 的更多信息。
源分发
构建分发
basicserial-1.2.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9876bc1ce3d8c534235c907693c4ca41072e9a37b1adddcb9dd51c8c5c9a772 |
|
MD5 | 75a0915ea3b1cf494df7c59992633532 |
|
BLAKE2b-256 | 90080d07363bfda469f7bd38cf4dae1649393a6b9f27b8f136b1df56061bdd60 |
basicserial-1.2.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 873b591491d0e4755bc6cf78f4384db8547386fd56b7b8aac14a0ac1bb66e68c |
|
MD5 | b0073d8d8a25c17b87d3af3708497ad1 |
|
BLAKE2b-256 | 994b39c10ec9211324524a8b93926079b930b1a97ea41c00227fdb245aefe70d |