#python #json #parsing
#python #json #синтаксический анализ
Вопрос:
У меня есть файл Json, который я прочитал. я бы напечатал сумму ‘total_signatures’.
{
"response": [
{
"domains": [],
"total_network_connections": 0,
"total_processes": 0,
"total_signatures": 0,
},
{
"analysis_start_time": "2018-03-05 08:54:07",
"avdetect": 52,
"certificates": [],
"classification_tags": [],
"domains": [],
"total_signatures": 55,
"type": "PE32 executable (GUI) Intel 80386, for MS Windows",
"type_short": [
"peexe",
"executable"
],
"verdict": "malicious",
"vxfamily": "Trojan.Agent"
},
{
"analysis_start_time": "2016-05-18 09:10:50",
"avdetect": 52,
"certificates": [],
"classification_tags": [],
"total_signatures": 35,
..............
Я пытался с этим, но не работает —> AttributeError: объект ‘list’ не имеет атрибута ‘values’
a = sum(d['total_signatures'] for d in data['response'].values() if d)
Как я могу это решить? Спасибо
Комментарии:
1. Ответ на ваш вопрос зависит от структуры json. Пожалуйста, опубликуйте полную информацию.
Ответ №1:
попробуйте это
json = {...}
sum = 0
for i in json['response']:
sum = (i['total_signatures'])
print(sum)
выход:
90
Комментарии:
1. рад, что смог помочь
Ответ №2:
Это должно сделать:
In [48]: d
Out[48]:
{'response': [{'domains': [],
'total_network_connections': 0,
'total_processes': 0,
'total_signatures': 0},
{'analysis_start_time': '2018-03-05 08:54:07',
'avdetect': 52,
'certificates': [],
'classification_tags': [],
'domains': [],
'total_signatures': 55,
'type': 'PE32 executable (GUI) Intel 80386, for MS Windows',
'type_short': ['peexe', 'executable'],
'verdict': 'malicious',
'vxfamily': 'Trojan.Agent'},
{'analysis_start_time': '2016-05-18 09:10:50',
'avdetect': 52,
'certificates': [],
'classification_tags': [],
'total_signatures': 35}]}
In [49]: sum([x['total_signatures'] for x in d['response']])
Out[49]: 90
Комментарии:
1. Нет: ( .. у меня эта ошибка -> TypeError: объект ‘int’ не вызывается
2. Возможно, у вас есть имя переменной с именем ‘sum’. Попробуйте следующее: del sum, а затем запустите его снова. Единственной функцией, вызываемой в этом oneliner, является sum . и ошибка, которую вы предлагаете, говорит о том, что вы вызываете переменную типа int как функцию, поэтому она выглядит как sum .
3. он очень, очень большой. могу ли я отправить вам электронное письмо? Нет, у меня нет переменной sum: (