У меня есть сценарий Python, в котором я хотел бы отфильтровать Python с помощью http get, и я хотел бы отфильтровать данные ответа только для определенных c значений. Пример ответа json приведен ниже:
{
"id": "38",
"name": "Report1",
"description": "",
"reportDefinitionID": "-1",
"jobID": "105600",
"type": "csv",
"status": "Completed",
"creator": {
"id": "1",
"username": "btest",
"firstname": "bob",
"lastname": "test"
},
{
"id": "39",
"name": "Report2",
"description": "",
"reportDefinitionID": "-1",
"jobID": "113218",
"type": "csv",
"status": "Completed"
"creator": {
"id": "1",
"username": "btest1",
"firstname": "Bob",
"lastname": "test1"
},
"id": "49",
"name": "Report1",
"description": "",
"reportDefinitionID": "-1",
"jobID": "113219",
"type": "csv",
"status": "Completed"
"creator": {
"id": "1",
"username": "btest1",
"firstname": "Bob",
"lastname": "test1"
}
Я хотел бы отфильтровать приведенный выше json, чтобы отображать отчет только по имени. Например, если есть фильтр Python, который позволяет мне фильтровать отчет только по имени «Report1». Если я фильтровал по имени «Report1». Я ожидаю, что ниже будет возвращено следующее:
{
"id": "38",
"name": "Report1",
"description": "",
"reportDefinitionID": "-1",
"jobID": "105600",
"type": "csv",
"status": "Completed",
"creator": {
"id": "1",
"username": "btest",
"firstname": "bob",
"lastname": "test"
},
"id": "49",
"name": "Report1",
"description": "",
"reportDefinitionID": "-1",
"jobID": "113219",
"type": "csv",
"status": "Completed"
"creator": {
"id": "1",
"username": "btest1",
"firstname": "Bob",
"lastname": "test1"
}
Для последней части скрипта я хотел бы сравнить поле 'id', чтобы показать наибольшее значение, например id 38 vs id 49 а затем выведите json для самого большого в этом случае идентификатора 49. Я бы хотел, чтобы он вывести
},
"id": "49",
"name": "Report1",
"description": "",
"reportDefinitionID": "-1",
"jobID": "113219",
"type": "csv",
"status": "Completed"
"creator": {
"id": "1",
"username": "btest1",
"firstname": "Bob",
"lastname": "test1"
}
Для последней части я просто хотел бы сохранить значение идентификатора '49' в переменной в Python.
Итак, что у меня ниже:
response_data = response.json()
input_dict = json.dumps(response_data)
input_transform = json.loads(input_dict)
# Filter python objects with list comprehensions
sort1 = sorted([r.get("id") for r in input_transform if r.get("name") == "Report1"], reverse=True)[0]
# Print sorted JSON
print(sort1)
Я обновил свой код и теперь получаю следующую ошибку:
'str' object has no attribute 'get'
Я исследовал это и не могу понять, что делаю сейчас и как это пройти.