格式化JSON中的嵌套数组的最佳方法?

时间:2019-02-26 10:31:03

标签: python json

我有一个聚类算法,该算法将成为RESTful服务,该算法可在Flask的POST中接收电影以用于JSON聚类,例如:

{"movies": ["movie1","movie2",...]}

我从两个单独的阵列中接收到群集,以发送POST响应。电影名称的群集和该群集的推荐,例如:

群集电影的Array1:

[["movieClusterName1", "movieClusterName2",...etc],
["movieCluster2Name1", "movieCluster2Name2",...etc]]

每个群集的Array2建议:

[["movieRecCluster1", "movieRecCluster2",...etc],
["movieRecCluster2", "movieRecCluster2",...etc]]

格式化并以JSON返回的最佳方法是什么?

类似这样的东西:

{

"clusters": [
        ["movieClusterName1", "movieClusterName2",...etc],
        ["movieCluster2Name1", "movieCluster2Name2",...etc]
    ],
"recommendations":  [
        ["movieRec1ForCluster1", "movieRec2ForCluster1",...etc],
        ["movieRec1ForCluster2", "movieRec2ForCluster2",...etc]
    ]

}

我无法想象这是此用例的正确JSON响应。有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的目标,那么您正在寻找一种表示此信息的好方法。

为此,您应该首先尝试组织要归入逻辑分组的响应。问问自己,列表中的每个项目代表什么,可以这么说。属于

在这种情况下,推荐以及群集中的电影都属于群集本身。因此,只需将其分组即可。集群既可以作为字典也可以作为列表(字典的形式,我已经意识到这也不是很直观的)。我的建议是第一种方法。

{
    "Cluster1": {
        "Movies": ["Movie1", "Movie2"],
        "Recommendations": ["RecMovie1", "RecMovie2"]
    },
    "Cluster2": {
        "Movies": ["Movie1", "Movie2"],
        "Recommendations": ["RecMovie1", "RecMovie2"]
    }
}

OR

[{
        "Cluster1": {
            "Movies": ["Movie1", "Movie2"],
            "Recommendations": ["RecMovie1", "RecMovie2"]
        }
    },
    {
        "Cluster2": {
            "Movies": ["Movie1", "Movie2"],
            "Recommendations": ["RecMovie1", "RecMovie2"]
        }
    }
]

答案 1 :(得分:1)

希望这个线索可以帮助您完成任务。

data = {}
data['clusters'] = []
data['recommendations'] = []

print data

输出:-{'集群':[],'推荐':[]}

现在,您可以将值附加到将接受这样的值数组的键中,

data['clusters'].append(something)
data['recommendations'].append(something)