使用以下代碼,我能夠通過鍵映射字典串列
import json
values_list = [{"id" : 1, "user":"Rick", "title":"More JQ"}, {"id" : 2, "user":"Steve", "title":"Beyond"}, {"id" : 1, "user":"Rick", "title":"Winning"}]
result = {}
for data in values_list:
id = data['id']
user = data['user']
title = data['title']
if id not in result:
result[id] = {
'id' : id,
'user' : user,
'books' : {'titles' : []}
}
result[id]['books']['titles'].append(title)
print(json.dumps((list(result.values())), indent=4))
了解 Jolt Spec 的簡潔程度并嘗試將架構與代碼分開。有沒有辦法使用 Jolt Spec 來實作相同的結果。
結果
[
{
"id": 1,
"user": "Rick",
"books": {
"titles": [
"More JQ",
"Winning"
]
}
},
{
"id": 2,
"user": "Steve",
"books": {
"titles": [
"Beyond"
]
}
}
]
uj5u.com熱心網友回復:
您可以使用三個級別的連續規格
[
{
"operation": "shift",
"spec": {
"*": {
"*": "@(1,id).&",
"title": "@(1,id).books.&s[]"
}
}
},
{
"operation": "shift",
"spec": {
"*": ""
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"id": "ONE",
"user": "ONE"
}
}
}
]
- 在第一個規范中,通用
id值通過"@(1,id)."運算式組合 - 在第二個規范中,最外層物件的整數鍵(
1,2) 被洗掉 - 在最后一個規范中,僅選取重復元素中的第一個

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351062.html
上一篇:什么相當于tensorflow中的torch.load()?
下一篇:如何訪問R中的串列元素?
