variety.py 936 B

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import annotations
  2. import sys
  3. import json
  4. def main() -> None:
  5. month = sys.argv[1]
  6. with open(f'www/data/company-data-{month}.json', 'r') as f:
  7. companies = json.load(f)['individual']
  8. variety: dict[str, int] = {}
  9. for co_id, stats in companies.items():
  10. if len(stats) > 1:
  11. variety[co_id] = len(stats)
  12. with open('www/data/knownCompanies.json', 'r') as f:
  13. known_companies = json.load(f)
  14. with open(f'www/data/base-data-{month}.json', 'r') as f:
  15. base_data = json.load(f)
  16. for rank, (co_id, count) in enumerate(sorted(variety.items(), key=lambda item: item[1], reverse=True), start=1):
  17. try:
  18. username = known_companies[co_id]['Username']
  19. except KeyError:
  20. username = 'unknown user ' + co_id
  21. bases = base_data[co_id]
  22. base_count = bases['bases']
  23. base_rank = bases.get('rank')
  24. print(f'{rank:4}: {username:20} {count:3} {base_count:2} bases (#{base_rank})')
  25. if __name__ == '__main__':
  26. main()