compose_score2.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. info_dict2 = {}
  25. info_dict3 = {}
  26. info_dict4 = {}
  27. while True:
  28. line = f2.readline()
  29. if not line:
  30. break
  31. items = line.split("\t")
  32. if len(items)<2:
  33. continue
  34. kid = items[0].replace("k_p:", "")
  35. kid2 = "k_p2:"+kid
  36. kid3 = "k_p3:"+kid
  37. kid4 = "k_p4:"+kid
  38. kid5 = "k_p7:"+kid
  39. #print(kid)
  40. d_item_info = json.loads(items[1])
  41. if kid in data_dict:
  42. item_info = data_dict[kid]
  43. #print("h:",item_info)
  44. #print("d:",d_item_info)
  45. total_info = []
  46. for i in range(len(item_info[:5])):
  47. total_info.append(item_info[i]+d_item_info[i])
  48. #if len(total_info)>2:
  49. # total_info[0] = total_info[0]+0.1*total_info[3]
  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. info_dict2[kid3] = total_item_info
  54. info_dict3[kid4] = total_item_info
  55. info_dict4[kid5] = total_item_info
  56. #print("m:",total_item_info)
  57. else:
  58. total_info = []
  59. for i in range(len(d_item_info[:5])):
  60. total_info.append(d_item_info[i])
  61. #if len(total_info)>2:
  62. # total_info[0] = total_info[1]+0.1*total_info[3]
  63. total_item_info = json.dumps(total_info)
  64. f3.write(kid2+"\t"+total_item_info+"\n")
  65. info_dict[kid2] = total_item_info
  66. info_dict2[kid3] = total_item_info
  67. info_dict3[kid4] = total_item_info
  68. info_dict4[kid5] = total_item_info
  69. print(info_dict4)
  70. if len(info_dict)>0:
  71. redis_helper = RedisHelper()
  72. redis_helper.update_batch_setnx_key(info_dict, 60*60*24*3)
  73. if len(info_dict2)>0:
  74. redis_helper = RedisHelper()
  75. redis_helper.update_batch_setnx_key(info_dict2, 60*60*24*3)
  76. if len(info_dict3)>0:
  77. redis_helper = RedisHelper()
  78. redis_helper.update_batch_setnx_key(info_dict3, 60*60*24*3)
  79. if len(info_dict4)>0:
  80. redis_helper = RedisHelper()
  81. redis_helper.update_batch_setnx_key(info_dict4, 60*60*24*3)
  82. f2.close()