用于通过模式配置将类似JSON的对象流展平的工具
项目描述
一个用于展平类似JSON对象的工具,允许通过注解的JSON模式进行配置
免费软件:BSD许可证
功能
使用JSON模式展平Python字典
支持通过模式进行字段配置
用法
>>> from flatson import Flatson
>>> schema = {
"$schema": "https://json-schema.fullstack.org.cn/draft-04/schema",
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number"},
"address": {
"type": "object",
"properties": {"city": {"type": "string"}, "street": {"type": "string"}}
},
"skills": {"type": "array", "items": {"type": "string"}}
}
}
>>> sample = {
"name": "Claudio", "age": 42,
"address": {"city": "Paris", "street": "Rue de Sevres"},
"skills": ["hacking", "soccer"]}
>>> f = Flatson(schema)
>>> f.fieldnames
['address.city', 'address.street', 'age', 'name', 'skills']
>>> f.flatten(sample)
['Paris', 'Rue de Sevres', 42, 'Claudio', '["hacking","soccer"]']
您可以得到一个字段名顺序保持的字典
>>> f.flatten_dict(sample)
OrderedDict([('address.city', 'Paris'), ('address.street', 'Rue de Sevres'), ('age', 42), ('name', 'Claudio'), ('skills', '["hacking","soccer"]')])
您还可以通过模式配置数组序列化行为(默认为JSON)
>>> schema = {
"$schema": "https://json-schema.fullstack.org.cn/draft-04/schema",
"type": "object",
"properties": {
"name": {"type": "string"},
"skills": {
"type": "array",
"items": {"type": "string"},
"flatson_serialize": {"method": "join_values"},
}
}
}
>>> f = Flatson(schema)
>>> f.flatten({"name": "Salazar", "skills": ["hacking", "socker", "partying"]})
['Salazar', 'hacking,socker,partying']
历史
0.1.0 (2015-06-02)
首次发布到PyPI。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
flatson-0.1.0.tar.gz (15.6 kB 查看哈希值)
构建分发
flatson-0.1.0-py2.py3-none-any.whl (5.8 kB 查看哈希值)
关闭
flatson-0.1.0.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 3e63836d7b7f403ef56f43e62478bf322c77e9510a82a6c878e43c11b163cb8a |
|
| MD5 | 5a9e6a2ffb3e964419fcbcc49636333b |
|
| BLAKE2b-256 | 2dad1448b5223740acbe699a2d9740c94cd95fbee69593b4d65a49663cfe7ce5 |
关闭
flatson-0.1.0-py2.py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 561d8401cff143e4977f02bc2812d890e88aec99c4651eac63da69af1ef07b45 |
|
| MD5 | 5f16b2107aef81b2e401f416814e13f6 |
|
| BLAKE2b-256 | 29655797c3cd3ab571c889817d28cb11c4c5ba739f7c1c0e46c9d710943bd87a |