用于处理彩票的大数据算法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.4 KiB

import pymysql
import json
from functools import reduce
from pymysql.cursors import DictCursor
db = {
'host': 'home.rogersun.online',
'user': 'root',
'password': 'Sxzgx1209',
'database': 'lottery'
}
# real_blue = ["01", "04", "09", "10", "20", "33"]
def get_real_data():
conn = pymysql.Connect(**db)
cursor = conn.cursor(DictCursor)
cursor.execute("SELECT * FROM lottery.history ORDER BY id DESC LIMIT 1")
history_data = cursor.fetchone()
# print(history_data)
# [{'id': 2979, 'dateId': '2023035', 'openDate': datetime.date(2023, 3, 30), 'red': '["01", "04", "09", "10", "20", "33"]', 'blue': '06'}]
return history_data
def general_blue_index(_history_data):
conn = pymysql.Connect(**db)
cursor = conn.cursor(DictCursor)
cursor.execute("SELECT * FROM lottery.blue_forecast WHERE dateId = %s", (str(int(_history_data['dateId']) - 1)), )
history_blue = cursor.fetchall()
# print(history_blue)
for data in history_blue:
n = 1
for k, v in json.loads(data['blue']).items():
if k == _history_data['blue']:
real_index = {'real_blue': _history_data['blue'], 'real_index': n}
cursor.execute("UPDATE lottery.blue_forecast SET comment = %s WHERE id = %s",
(json.dumps(real_index), data['id']))
break
else:
n += 1
conn.commit()
cursor.close()
def general_red_index(_history_data):
conn = pymysql.Connect(**db)
cursor = conn.cursor(DictCursor)
cursor.execute("SELECT * FROM lottery.red_forecast WHERE dateId = %s", (str(int(_history_data['dateId']) - 1)), )
history_red = cursor.fetchone()
# print(history_red)
real_red = json.loads(_history_data['red'])
real_red_index = []
n = 1
for red, _ in json.loads(history_red['red_rate']).items():
if red in real_red:
real_red_index.append(n)
n += 1
else:
n += 1
# print(_history_data['red'], json.dumps(real_red_index), history_red['id'])
cursor.execute("UPDATE lottery.red_forecast SET real_result = %s, comments = %s WHERE id = %s",
(_history_data['red'], json.dumps(real_red_index), history_red['id']))
conn.commit()
cursor.close()
if __name__ == "__main__":
history = get_real_data()
general_blue_index(history)
general_red_index(history)