|
@@ -1,18 +1,32 @@
|
|
|
import json
|
|
|
|
|
|
# 假设数据文件名为 'betting_data.txt',每行为一个时间戳和JSON数据
|
|
|
-file_path = '分析开奖记录.log'
|
|
|
+file_path = '开奖记录.log'
|
|
|
|
|
|
index = 0
|
|
|
total_payout_by_bet_odd = 0
|
|
|
total_payout_by_settle = 0
|
|
|
+result_option = []
|
|
|
bet_101 = 0
|
|
|
bet_102 = 0
|
|
|
options_pay_out = {}
|
|
|
|
|
|
+wrong_data_key = []
|
|
|
+
|
|
|
+cacheRoundInfo = []
|
|
|
+
|
|
|
+
|
|
|
+class RoundInfo:
|
|
|
+ def __init__(self, key, _result_option, _options_pay_out, _total_payout_by_bet_odd, _total_payout_by_settle):
|
|
|
+ self.key = key
|
|
|
+ self.result_option = _result_option
|
|
|
+ self.options_pay_out = _options_pay_out
|
|
|
+ self.total_payout_by_bet_odd = _total_payout_by_bet_odd
|
|
|
+ self.total_payout_by_settle = _total_payout_by_settle
|
|
|
+
|
|
|
|
|
|
def process_settle(key, data):
|
|
|
- global total_payout_by_settle, total_payout_by_bet_odd
|
|
|
+ global total_payout_by_settle, total_payout_by_bet_odd, result_option
|
|
|
player_settle = data["playerSettle"]
|
|
|
for player in player_settle:
|
|
|
total_payout_by_settle += player["totalWinAmount"]
|
|
@@ -23,7 +37,9 @@ def process_settle(key, data):
|
|
|
# 开奖结果
|
|
|
for result in data["optionResult"]:
|
|
|
if result["result"] == 1:
|
|
|
- total_payout_by_bet_odd += options_pay_out[result["option"]]
|
|
|
+ result_option_ = result["option"]
|
|
|
+ result_option.append(result_option_)
|
|
|
+ total_payout_by_bet_odd += options_pay_out[result_option_]
|
|
|
|
|
|
|
|
|
def compare_obb_and_settle(key, data):
|
|
@@ -32,14 +48,19 @@ def compare_obb_and_settle(key, data):
|
|
|
diff_value = round(diff_value, 2)
|
|
|
if diff_value != 0:
|
|
|
print(
|
|
|
- f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 差值:{diff_value}¥ 数值不同不予计入")
|
|
|
+ f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 差值:{diff_value}¥ 数值不同不予计入,待删除")
|
|
|
+ wrong_data_key.append(key)
|
|
|
else:
|
|
|
# print(f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 差值:{diff_value}¥")
|
|
|
pass
|
|
|
|
|
|
|
|
|
-def clear():
|
|
|
- global bet_101, bet_102, total_payout_by_bet_odd, total_payout_by_settle
|
|
|
+def save_and_clear(key):
|
|
|
+ global bet_101, bet_102, total_payout_by_bet_odd, total_payout_by_settle, result_option
|
|
|
+ if total_payout_by_settle == total_payout_by_bet_odd:
|
|
|
+ # print(f"{key} odd结果:{total_payout_by_bet_odd} 开奖结果:{total_payout_by_settle} 一致数据可以保存用于分析")
|
|
|
+ cacheRoundInfo.append(
|
|
|
+ RoundInfo(key, result_option, options_pay_out, total_payout_by_bet_odd, total_payout_by_settle))
|
|
|
bet_101 = 0
|
|
|
bet_102 = 0
|
|
|
total_payout_by_bet_odd = 0
|
|
@@ -47,9 +68,29 @@ def clear():
|
|
|
options_pay_out.clear()
|
|
|
|
|
|
|
|
|
-def parse_data_from_file(file_path):
|
|
|
+def parse_data_from_file(_file_path):
|
|
|
+ clean_data(_file_path)
|
|
|
+ delete_wrong_data(_file_path)
|
|
|
+ print(json.dumps(cacheRoundInfo))
|
|
|
+
|
|
|
+
|
|
|
+def delete_wrong_data(_file_path):
|
|
|
+ print("错误数据key:", wrong_data_key)
|
|
|
+ if not wrong_data_key:
|
|
|
+ return
|
|
|
+ # 删除文件的某一行以及上一行
|
|
|
+ with open(_file_path, "r", encoding="utf-8") as f:
|
|
|
+ lines = f.readlines()
|
|
|
+ with open(_file_path, "w", encoding="utf-8") as f_w:
|
|
|
+ for line in lines:
|
|
|
+ # line 不包含任意一个错误数据key
|
|
|
+ if not any([i in line for i in wrong_data_key]):
|
|
|
+ f_w.write(line)
|
|
|
+
|
|
|
+
|
|
|
+def clean_data(_file_path):
|
|
|
global index
|
|
|
- with open(file_path, 'r', encoding='utf-8') as file:
|
|
|
+ with open(_file_path, 'r', encoding='utf-8') as file:
|
|
|
for line in file:
|
|
|
# print(line)
|
|
|
line_strip = line.strip()
|
|
@@ -66,7 +107,7 @@ def parse_data_from_file(file_path):
|
|
|
else:
|
|
|
process_settle(key, data)
|
|
|
compare_obb_and_settle(key, data)
|
|
|
- clear()
|
|
|
+ save_and_clear(key)
|
|
|
index += 1
|
|
|
|
|
|
|