Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.54 KB | None | 0 0
  1. import json
  2. import timeit
  3. import functools
  4. import locale
  5.  
  6. # Подготавливаю словаь и читаю сырые данные из файла
  7. with open("data.json", "r") as read_file:
  8.     jsons = json.load(read_file)
  9.  
  10. # Мой вариант сортировки
  11. def sorted_json_data(jsons):
  12.     json_list = []
  13.  
  14.     # Определяю то, какие linkeddata_id есть в сырых данных
  15.     for json in jsons:
  16.         if json_list != json['linkeddata_id']:
  17.             json_list.append(json['linkeddata_id'])
  18.  
  19.     # Убираю дубликаты
  20.     json_list = set(json_list)
  21.  
  22.     # Формирую готовый список
  23.     data = []
  24.     for a, json_items in enumerate(json_list):
  25.         data.append([])
  26.         for i, json in enumerate(jsons):
  27.             if json['linkeddata_id'] == json_items:
  28.                 data[a].append(
  29.                     {'linkeddata_id': json['linkeddata_id']})
  30.  
  31.     return data
  32.  
  33. # Твой вариант сортировки
  34. def old_sorted_json_data(jsons):
  35.   data = [[] for imes in jsons]
  36.   for i, l in enumerate(jsons):
  37.       for r, m in enumerate(l.many.all()):
  38.           data[i].append({
  39.               'linked_data_id': l['linkeddata_id'],
  40.           })
  41.  
  42.   return data
  43.  
  44.  
  45. # Подсчитываем время выполнения сортировки
  46. measure = timeit.Timer(functools.partial(sorted_json_data, jsons))
  47. measure_old = timeit.Timer(functools.partial(old_sorted_json_data, jsons))
  48. print (locale.format_string('sorted_json_data: %f', measure.timeit(100)))
  49. print (locale.format_string('old_sorted_json_data: %f', measure.timeit(100)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement