Advertisement
milanmetal

FTN Prijemni 2019 / Generisanje rang liste

Jul 1st, 2019
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. # xml2json.py
  2. #
  3. # export json files from XML data
  4. # downloaded from ajax responses from website
  5.  
  6. from xmljson import parker, Parker
  7. from xml.etree.ElementTree import fromstring
  8. from json import dumps
  9.  
  10. with open('ee.xml', 'r') as file:
  11.     ee_xml = file.read().replace('\n', '')
  12.  
  13. with open('p1.xml', 'r') as file:
  14.     p1_xml = file.read().replace('\n', '')
  15.  
  16. ee_json_string = dumps(
  17.     parker.data(fromstring(ee_xml), preserve_root=True), ensure_ascii=False)
  18. p1_json_string = dumps(
  19.     parker.data(fromstring(p1_xml), preserve_root=True), ensure_ascii=False)
  20.  
  21. file = open('ee.json', 'w')
  22. file.write(ee_json_string)
  23. file.close()
  24.  
  25. file = open('p1.json', 'w')
  26. file.write(p1_json_string)
  27. file.close()
  28.  
  29. print(ee_json_string)
  30.  
  31. # --------------------------------------------------------------------------------------------------
  32.  
  33. # load_json.py
  34. #
  35. # this script takes files which are generated by
  36. # xml2json.py script
  37.  
  38. import json
  39. import operator
  40.  
  41. with open('ee.json') as json_file:
  42.     ee_data = json.load(json_file)
  43.  
  44. with open('p1.json') as json_file:
  45.     p1_data = json.load(json_file)
  46.  
  47. # EE structure
  48. ee_cells = [item for item in ee_data['rows']['row']]
  49. ee_cell = [cell['cell'] for cell in ee_cells]
  50. ee_candidates = [cand for cand in ee_cell]
  51. ee_data = {key[1]: ee_candidates[n] for n, key in enumerate(ee_candidates)}
  52.  
  53. # generate P1 structure
  54. p1_cells = [item for item in p1_data['rows']['row']]
  55. p1_cell = [cell['cell'] for cell in p1_cells]
  56. p1_candidates = [cand for cand in p1_cell]
  57. p1_data = {key[1]: p1_candidates[n] for n, key in enumerate(p1_candidates)}
  58.  
  59. mixed_dict = {
  60.     # key[1]: ee_data[n] #.append(p1_data[key[1]])
  61.     # for n, key in enumerate(ee_data)
  62.     **ee_data,
  63.     **p1_data
  64. }
  65.  
  66. rank_list = {}
  67. for student, i in enumerate(ee_data):
  68.     sum = ee_data[i][-1] + p1_data[i][-2]["b"]
  69.     print("#{} | {:5} + {:5} = {:4.2f} | {:20} {:20}".format(
  70.         ee_data[i][1], ee_data[i][-1], p1_data[i][-2]["b"], sum, ee_data[i][3],
  71.         ee_data[i][2]))
  72.  
  73.     rank_list[ee_data[i][1]] = sum
  74.  
  75. sorted_d = sorted(rank_list.items(), key=operator.itemgetter(1))
  76.  
  77. for i, (k, v) in enumerate(sorted_d):
  78.     print(len(sorted_d) - i, k, v)
  79.  
  80. print("\n\n")
  81. print(ee_data[1077])
  82. print(p1_data[1077])
  83. print(mixed_dict[1077])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement