【发布时间】:2020-07-09 14:25:13
【问题描述】:
我有以下 json 数据:
{
"data": [
{
"id": "1",
"type": "POK",
"value": "34"
},
{
"id": "1",
"type": "TOK",
"value": "32"
},
{
"id": "1",
"type": "POC",
"value": "43"
},
{
"id": "2",
"type": "POK",
"value": "45"
},
{
"id": "2",
"type": "TOK",
"value": "67"
},
{
"id": "3",
"type": "POK",
"value": "12"
},
{
"id": "2",
"type": "POC",
"value": "23"
},
{
"id": "3",
"type": "TOK",
"value": "34"
},
]
}
在上面的数据中,我们可以看到id 为1, 2, 3,类型为POK TOK POC。我必须编写一个脚本来减去类型为POK 和TOK 的每个id 的值。例如,类型为POK 的id 1 从TOK 类型的id 1 中减去,所以34 - 32 得到答案2。 id 2 和 3 也是如此。
为此,我想到了首先在list 的dicts 中从上述json 中提取有用数据,然后减去每个值,如下所示:
import json
with open("data.json") as f:
data = json.load(f)
l = []
for i in range(len(data['data'])):
d = dict()
if data['data'][i]['type'] == 'POK':
d['id'] = data['data'][i]['id']
d['value'] = data['data'][i]['value']
d['type'] = 'POK'
l.append(d)
if data['data'][i]['type'] == 'TOK':
d['id'] = data['data'][i]['id']
d['timestamp'] = data['value'][i]['value']
d['type'] = 'TOK'
l.append(d)
现在在上面的代码之后,我有一个列表l,每个列表中有 6 个dict,其中包含数据
[
{'id': '1', 'value': '34', 'type': 'POK'},
{'id': '1', 'value': '32', 'type': 'TOK'},
{'id': '2', 'value': '45', 'type': 'POK'},
{'id': '2', 'value': '67', 'type': 'TOK'},
{'id': '3', 'value': '12', 'type': 'POK'},
{'id': '3', 'value': '34', 'type': 'TOK'}
]
在此之后,我无法理解如何减去类型为 'POK' 和 'TOK' 的每个 id 的值。谁能给我一些建议?有没有其他方法来处理这段代码?
【问题讨论】:
标签: python json list dictionary