compose_score.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #coding utf-8
  2. import sys
  3. import json
  4. from db_help import RedisHelper
  5. if __name__=="__main__":
  6. nowdate = sys.argv[1]
  7. f1 = open("./data/sorted_hour_data_"+nowdate)
  8. f2 = open("./data/sorted_data_"+nowdate)
  9. data_dict = {}
  10. while True:
  11. line = f1.readline()
  12. if not line:
  13. break
  14. items = line.strip().split("\t")
  15. if len(items)<2:
  16. continue
  17. kid = items[0]
  18. #print(items[1])
  19. item_info = json.loads(items[1])
  20. data_dict[kid] = item_info
  21. f1.close()
  22. f3 = open("./data/merge_score_"+nowdate, 'w')
  23. info_dict = {}
  24. while True:
  25. line = f2.readline()
  26. if not line:
  27. break
  28. items = line.split("\t")
  29. if len(items)<2:
  30. continue
  31. kid = items[0].replace("k_p:", "")
  32. kid2 = "k_p2:"+kid
  33. #print(kid)
  34. d_item_info = json.loads(items[1])
  35. if kid in data_dict:
  36. item_info = data_dict[kid]
  37. #print("h:",item_info)
  38. #print("d:",d_item_info)
  39. total_info = []
  40. for i in range(len(item_info)):
  41. total_info.append(0.3*item_info[i]+0.7*d_item_info[i])
  42. total_item_info = json.dumps(total_info)
  43. f3.write(kid2+"\t"+total_item_info+"\n")
  44. info_dict[kid2] = total_item_info
  45. #print("m:",total_item_info)
  46. else:
  47. total_info = []
  48. for i in range(len(d_item_info)):
  49. total_info.append(0.7*d_item_info[i])
  50. total_item_info = json.dumps(total_info)
  51. f3.write(kid2+"\t"+total_item_info+"\n")
  52. info_dict[kid2] = total_item_info
  53. print(info_dict)
  54. redis_helper = RedisHelper()
  55. redis_helper.update_batch_setnx_key(info_dict, 60*60*24*15)
  56. f2.close()