У меня есть данные ниже 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
as 1, 2, 3
с типом POK
TOK
POC
. Мне нужно написать сценарий, чтобы вычесть значение каждого идентификатора, имеющего тип POK
и TOK
. Например, идентификатор 1 с типом POK
вычитается из идентификатора 1 с типом TOK
, поэтому 34
- 32
, чтобы получить ответ 2
. То же самое касается id 2 и 3.
Для этого я подумал сначала извлечь полезные данные сверху json в dicts
из list
, а затем вычесть каждое значение, как показано ниже:
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'
. Кто-нибудь может дать мне несколько предложений? Есть ли другой способ обработки этого кода?