compose_score.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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.001*item_info[i]+d_item_info[i])
  42. if len(total_info)>2:
  43. total_info[0] = total_info[0]+0.1*total_info[3]
  44. total_item_info = json.dumps(total_info)
  45. f3.write(kid2+"\t"+total_item_info+"\n")
  46. info_dict[kid2] = total_item_info
  47. #print("m:",total_item_info)
  48. else:
  49. total_info = []
  50. for i in range(len(d_item_info)):
  51. total_info.append(d_item_info[i])
  52. if len(total_info)>2:
  53. total_info[0] = total_info[1]+0.1*total_info[3]
  54. total_item_info = json.dumps(total_info)
  55. f3.write(kid2+"\t"+total_item_info+"\n")
  56. info_dict[kid2] = total_item_info
  57. print(info_dict)
  58. if len(info_dict)>0:
  59. redis_helper = RedisHelper()
  60. redis_helper.update_batch_setnx_key(info_dict, 60*60*24*15)
  61. f2.close()