Python函数,用于将JSON对象扁平化为一个键值对字典,以及将该字典反扁平化为JSON对象。
项目描述
json-flatten
Python函数,用于将JSON对象扁平化为一个键值对字典,以及将该字典反扁平化为JSON对象。
如果您需要使用常规HTML表单表示JSON对象或将其作为一组查询字符串参数传输,这可能会很有用。
例如
>>> import json_flatten
>>> json_flatten.flatten({"foo": {"bar": [1, True, None]}})
{'foo.bar.[0]$int': '1', 'foo.bar.[1]$bool': 'True', 'foo.bar.[2]$none': 'None'}
>>> json_flatten.unflatten(_)
{'foo': {'bar': [1, True, None]}}
传递给flatten()
的顶层对象必须是一个字典。
JSON扁平化格式
基本原理
- 使用点表示法构建键以表示嵌套。
- 使用
$type
后缀保留类型信息。 - 使用
[index]
表示法表示列表索引。 - 空对象和列表有特殊表示。
嵌套对象
对于嵌套对象,通过点连接嵌套键来构建键。
示例
{
"user": {
"name": "John",
"age": 30
}
}
扁平化
user.name=John
user.age$int=30
列表
使用[index]
表示法表示列表项。
示例
{
"fruits": [
"apple",
"banana",
"cherry"
]
}
扁平化
fruits.[0]=apple
fruits.[1]=banana
fruits.[2]=cherry
嵌套列表
对于嵌套列表,重复索引表示法。
示例
{"matrix": [[1, 2], [3, 4]]}
扁平化
matrix.[0].[0]$int=1
matrix.[0].[1]$int=2
matrix.[1].[0]$int=3
matrix.[1].[1]$int=4
类型保留
使用$type
后缀保留类型。
类型 | 后缀 | 示例 |
---|---|---|
字符串 | name=Cleo |
|
整数 | $int |
age$int=30 |
浮点数 | 浮点数 |
价格$float=19.99 |
布尔值 | $bool |
active$bool=True |
空值 | $none |
data$none=None |
空对象 | $empty |
obj$empty={} |
空列表 | $emptylist |
list$emptylist=[] |
字符串值不需要类型后缀。
示例
JSON
{
"user": {
"name": "Alice",
"age": 28,
"hobbies": [
"reading",
"swimming"
],
"address": {
"street": "123 Main St",
"city": "Anytown"
},
"active": true,
"salary": 50000.5,
"spouse": null
}
}
扁平化
user.name=Alice
user.age$int=28
user.hobbies.[0]=reading
user.hobbies.[1]=swimming
user.address.street=123 Main St
user.address.city=Anytown
user.active$bool=True
user.salary$float=50000.5
user.spouse$none=None
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
json_flatten-0.3.1.tar.gz (8.3 kB 查看哈希)
构建分发
json_flatten-0.3.1-py3-none-any.whl (8.5 kB 查看哈希)
关闭
json_flatten-0.3.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 70e813acf431b1ab7e9eb7b98f5733d307d6b9d27b553a344904b9c8eafdad3a |
|
MD5 | 3dee06b8e645d081269ed76fe501cd71 |
|
BLAKE2b-256 | a106e6a7046e71488a899a990206dc2426e8b9192ab7a341bb95a75ac1c88922 |
关闭
json_flatten-0.3.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26470dbe9d6d7eb1b7f69c59ba2ade9d52608a76b8443e4654f3adb9c78c1c3e |
|
MD5 | b5f7dca5494635a1dc42cc217808933a |
|
BLAKE2b-256 | 9bed75de9521770184c783ec0d4d75c0bb00f99ac7a21bca48adf9df596483c3 |