2016-01-15 3 views
-1

Я пытаюсь разобрать JSON-файл, который выглядит примерно так:python- JSON чтение в порядке возрастания

{ "my_test":[ 
    { "group_name":"group-A", "results": [ 
     { "test_name": "test1", "time": "8.556", "status": "pass" }, 
     { "test_name": "test2", "time": "45.909", "status": "pass" }, 
     { "test_name": "test3", "time": "9.383", "status": "fail" }, 
     ... 
    } 
} 

как можно распечатать результаты тестирования в порядке возрастания? (По имени или по времени)

EDIT: Выход может быть в порядке возрастания времени:

test1 8.556 
test3 9.383 
test2 45.909 
+0

Кроме сортировки в первую очередь? –

ответ

2

Вы могли бы попробовать это, используя встроенную функцию sorted.

from json import loads 

json_data = """{ 
    "my_test": [{ 
     "group_name": "group-A", 
     "results": [{ 
      "test_name": "test1", 
      "time": "8.556", 
      "status": "pass" 
     }, { 
      "test_name": "test2", 
      "time": "45.909", 
      "status": "pass" 
     }, { 
      "test_name": "test3", 
      "time": "9.383", 
      "status": "fail" 
     }] 
    }] 
}""" 

data = loads(json_data) 

for group in data["my_test"]: 
    print group["group_name"] 
    sorted_results = sorted(group["results"], key=lambda a: float(a["time"])) 
    for result in sorted_results: 
     print(result["test_name"] + ": " + result["time"]) 
0

Вы смотрели здесь: How do I sort a list of dictionaries by values of the dictionary in Python?

Просто извлечь список словарей с list_of_dicts = your_dict_name [ ''] результаты

затем

import operator 

и следуйте инструкциям vemury, например. " Чтобы отсортировать список словарей по„имени“ключ =:

list_of_dicts.sort (ключ = operator.itemgetter („имя“))

Чтобы отсортировать список словарей по возрасту ключ = ' ':

list_of_dicts.sort (ключ = operator.itemgetter (' возраст »)) " по vemury

+0

Вы можете пометить этот вопрос как дубликат, а не копию из чужого ответа –

+0

Вопрос не спрашивает о словаре. Он задает вопрос о массиве, который по определению упорядочен, как указано в JSON. –

+0

@DavidHammen: Вы неправильно поняли ответ. –

Смежные вопросы