下面是来自一个烧瓶应用程序的json响应,我想知道如何将它拆分成多个“行”/dicts。
输出:
{'class': [0.0, 1.0],
'probability': [0.8488858872836712, 0.1511141127163287]}我想要的是:
[{"class": 0.0, "probability": 0.8488858872836712},{"class": 1.0, "probability": 0.1511141127163287}]我尝试过以下几种方法,但不知道如何获得这两个键:
{k: v for e in zip(model.classes_, probabilities[0]) for k, v in zip(('class', 'probability'), e)}发布于 2019-11-05 01:57:06
一个更通用的解决方案(如果您不提前知道关键名称):
d = {'class': [0.0, 1.0], 'probability': [0.8488858872836712, 0.1511141127163287]}
result = [dict(zip(d.keys(), i)) for i in zip(*d.values())]输出:
[{'class': 0.0, 'probability': 0.8488858872836712}, {'class': 1.0, 'probability': 0.1511141127163287}]发布于 2019-11-05 01:52:09
假设输出存储在d中,您可以这样做
[{'class': c, 'probability': p} for c,p in zip(d['class'], d['probability'])]这将导致:
[{'class': 0.0, 'probability': 0.8488858872836712},
{'class': 1.0, 'probability': 0.1511141127163287}]这里有一个概念的证明:
Python 3.7.5 (default, Oct 17 2019, 12:16:48)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pprint import pprint
>>> d={'class': [0.0, 1.0],
... 'probability': [0.8488858872836712, 0.1511141127163287]}
>>> pprint([{'class': c, 'probability': p} for c,p in zip(d['class'], d['probability'])])
[{'class': 0.0, 'probability': 0.8488858872836712},
{'class': 1.0, 'probability': 0.1511141127163287}]
>>> 发布于 2019-11-05 04:48:13
使用列表理解拆分json
dic = { 'class': [0.0, 1.0], 'probability': [0.8488858872836712, 0.1511141127163287] }
split_value = [{'class':i,'probability':j} for i,j in zip(dic['class'],dic['probability'])]
print(split_value)产出:-
[{'class': 0.0, 'probability': 0.8488858872836712}, {'class': 1.0, 'probability': 0.1511141127163287}]https://stackoverflow.com/questions/58703305
复制相似问题