在Python中,可以使用sorted()
函数和itemgetter()
函数来按照多个字段对JSON进行排序。
首先,我们需要导入json
和operator
模块:
import json
from operator import itemgetter
然后,假设我们有一个包含JSON数据的列表data
,每个JSON对象有两个字段:field1
和field2
。我们可以使用sorted()
函数来按照这两个字段进行排序:
sorted_data = sorted(data, key=itemgetter('field1', 'field2'))
这将返回一个新的已排序的列表sorted_data
,根据field1
首先排序,然后再根据field2
排序。
下面是一个完整的示例代码:
import json
from operator import itemgetter
data = [
{'field1': 'foo', 'field2': 3},
{'field1': 'bar', 'field2': 1},
{'field1': 'baz', 'field2': 2},
{'field1': 'foo', 'field2': 2},
{'field1': 'bar', 'field2': 2}
]
sorted_data = sorted(data, key=itemgetter('field1', 'field2'))
print(json.dumps(sorted_data, indent=4))
运行以上代码将输出按照field1
和field2
排序后的JSON数据:
[
{
"field1": "bar",
"field2": 1
},
{
"field1": "bar",
"field2": 2
},
{
"field1": "baz",
"field2": 2
},
{
"field1": "foo",
"field2": 2
},
{
"field1": "foo",
"field2": 3
}
]