parent
							
								
									b683b58f0e
								
							
						
					
					
						commit
						64317e3c93
					
				
				 3 changed files with 171 additions and 1 deletions
			
			
		@ -0,0 +1,39 @@ | 
				
			||||
import pymysql | 
				
			||||
import json | 
				
			||||
from functools import reduce | 
				
			||||
from blue_forecast import dict_sort, dict_rate | 
				
			||||
from pymysql.cursors import DictCursor | 
				
			||||
 | 
				
			||||
db = { | 
				
			||||
    'host': 'home.rogersun.online', | 
				
			||||
    'user': 'root', | 
				
			||||
    'password': 'Sxzgx1209', | 
				
			||||
    'database': 'lottery' | 
				
			||||
} | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_data(): | 
				
			||||
    conn = pymysql.connect(**db) | 
				
			||||
    cursor = conn.cursor(DictCursor) | 
				
			||||
    cursor.execute("SELECT * FROM history") | 
				
			||||
    all_data = cursor.fetchall() | 
				
			||||
    # print(all_data) | 
				
			||||
    return all_data | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_blue_rate(): | 
				
			||||
    all_blue = {} | 
				
			||||
    all_data = get_all_data() | 
				
			||||
    for data in all_data: | 
				
			||||
        if data['blue'] in all_blue.keys(): | 
				
			||||
            all_blue[data['blue']] += 1 | 
				
			||||
        else: | 
				
			||||
            all_blue[data['blue']] = 1 | 
				
			||||
    print(all_blue) | 
				
			||||
    print('历史中篮球总概率:') | 
				
			||||
    for k, v in dict_rate(dict_sort(all_blue, 'val', True)).items(): | 
				
			||||
        print(f"{k} - {v}") | 
				
			||||
 | 
				
			||||
 | 
				
			||||
if __name__ == "__main__": | 
				
			||||
    get_all_blue_rate() | 
				
			||||
@ -0,0 +1,131 @@ | 
				
			||||
import pymysql | 
				
			||||
from pymysql.cursors import DictCursor | 
				
			||||
import json | 
				
			||||
from blue_forecast import dict_sort, dict_rate | 
				
			||||
 | 
				
			||||
db = { | 
				
			||||
    'host': 'home.rogersun.online', | 
				
			||||
    'user': 'root', | 
				
			||||
    'password': 'Sxzgx1209', | 
				
			||||
    'database': 'lottery' | 
				
			||||
} | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_data(): | 
				
			||||
    conn = pymysql.connect(**db) | 
				
			||||
    curser = conn.cursor(DictCursor) | 
				
			||||
    curser.execute("SELECT * FROM history") | 
				
			||||
    _all_data = curser.fetchall() | 
				
			||||
    # print(all_data) | 
				
			||||
    return _all_data | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_red(): | 
				
			||||
    _all_data = get_all_data() | 
				
			||||
    _red_data = [] | 
				
			||||
    for data in _all_data: | 
				
			||||
        _red_data.append(json.loads(data['red'])) | 
				
			||||
    return _red_data | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_red_with_id(): | 
				
			||||
    _all_data = get_all_data() | 
				
			||||
    _red_data_dict = {} | 
				
			||||
    for data in _all_data: | 
				
			||||
        _red_data_dict[data['id']] = json.loads(data['red']) | 
				
			||||
    return _red_data_dict | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_last_red(_red_data): | 
				
			||||
    return _red_data[-1] | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_last_id(_all_data): | 
				
			||||
    return _all_data[-1]['id'] | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_all_data_rate(_all_red_data): | 
				
			||||
    _red = {} | 
				
			||||
    for _red_list in _all_red_data: | 
				
			||||
        for r in _red_list: | 
				
			||||
            if r in _red.keys(): | 
				
			||||
                _red[r] += 1 | 
				
			||||
            else: | 
				
			||||
                _red[r] = 1 | 
				
			||||
    print("历史红球的出现概率:") | 
				
			||||
    for k, v in dict_rate(dict_sort(_red, 'val', True)).items(): | 
				
			||||
        print(f"{k}: {v}") | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def get_red_forecast(_all_data, _red_data_dict, _red_data, range_num=1): | 
				
			||||
    print("红球预期数据:") | 
				
			||||
    _last_red = get_last_red(_red_data) | 
				
			||||
    _last_id = get_last_id(_all_data) | 
				
			||||
 | 
				
			||||
    _id_dict = {} | 
				
			||||
    for _red in _last_red: | 
				
			||||
        for _id, _red_list in _red_data_dict.items(): | 
				
			||||
            if _id == _last_id: | 
				
			||||
                break | 
				
			||||
            if _red in _red_list: | 
				
			||||
                if _red in _id_dict.keys(): | 
				
			||||
                    _id_dict[_red].append(_id + 1) | 
				
			||||
                else: | 
				
			||||
                    _id_dict[_red] = [_id + 1] | 
				
			||||
    # for k, v in _id_dict.items(): | 
				
			||||
    #     print(f"{k}-{v}") | 
				
			||||
    _red_dict = {} | 
				
			||||
    for _red, _id_list in _id_dict.items(): | 
				
			||||
        # print(f"{_red}-{_id_list}") | 
				
			||||
        _red_temp_dict = {} | 
				
			||||
        for _id in _id_list: | 
				
			||||
            for _r in _red_data_dict[_id]: | 
				
			||||
                if _r in _red_temp_dict.keys(): | 
				
			||||
                    _red_temp_dict[_r] += 1 | 
				
			||||
                else: | 
				
			||||
                    _red_temp_dict[_r] = 1 | 
				
			||||
        _red_dict[_red] = _red_temp_dict | 
				
			||||
    # for k, v in _red_dict.items(): | 
				
			||||
    #     print(f"{k}-{dict_rate(dict_sort(v,'val', True))}") | 
				
			||||
    _red_forecast_dict = {} | 
				
			||||
    for _red, _red_list in _red_dict.items(): | 
				
			||||
        for _r, _sum in _red_list.items(): | 
				
			||||
            if _r in _red_forecast_dict.keys(): | 
				
			||||
                _red_forecast_dict[_r] += _sum | 
				
			||||
            else: | 
				
			||||
                _red_forecast_dict[_r] = _sum | 
				
			||||
    _red_forecast_dict = dict_rate(dict_sort(_red_forecast_dict, 'val', True)) | 
				
			||||
    for k, v in _red_forecast_dict.items(): | 
				
			||||
        print(f"{k}-{v}") | 
				
			||||
 | 
				
			||||
    _red_forecast_list = [] | 
				
			||||
    for _red, __ in _red_forecast_dict.items(): | 
				
			||||
        _red_forecast_list.append(_red) | 
				
			||||
 | 
				
			||||
    print('红球推荐:') | 
				
			||||
    print(', '.join(sorted(_red_forecast_list[0:6]))) | 
				
			||||
    return _red_forecast_dict, _red_forecast_list | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def update_red_forecast_db(): | 
				
			||||
    all_data = get_all_data() | 
				
			||||
    red_data = get_all_red() | 
				
			||||
    red_data_dict = get_all_red_with_id() | 
				
			||||
    red_forecast_dict, red_forecast_list = get_red_forecast(all_data, red_data_dict, red_data) | 
				
			||||
    date_id = all_data[-1]['dateId'] | 
				
			||||
    params = 1 | 
				
			||||
    red_rate = json.dumps(red_forecast_dict) | 
				
			||||
    red_suggest = json.dumps(red_forecast_list[0:6]) | 
				
			||||
    conn = pymysql.connect(**db) | 
				
			||||
    curser = conn.cursor(DictCursor) | 
				
			||||
    curser.execute( | 
				
			||||
        "INSERT INTO lottery.red_forecast (`dateId`, `params`, `red_rate`, `red_suggest`) VALUES (%s, %s, %s, %s)", | 
				
			||||
        (date_id, params, red_rate, red_suggest)) | 
				
			||||
    conn.commit() | 
				
			||||
    curser.close() | 
				
			||||
 | 
				
			||||
 | 
				
			||||
if __name__ == "__main__": | 
				
			||||
    # 实现获取含有这个数的下一期或几期中数字的概率 | 
				
			||||
    # 实现获取含有所以数据的总出现概率 | 
				
			||||
    update_red_forecast_db() | 
				
			||||
					Loading…
					
					
				
		Reference in new issue