dingxin_toolbox
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.

135 lines
7.1 KiB

import csv
from io import StringIO
import pymysql
from pymysql.cursors import DictCursor
s = """
影厅别名,影厅id,影片别名,本地影片id,语言,放映日期,开始时间,结束时间,片长,场间
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,11:00,12:46,106,0
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,13:00,14:46,106,14
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,15:00,16:46,106,14
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,17:00,18:46,106,14
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,19:00,20:46,106,14
2 百花厅部分按摩椅,1,功夫女足,4292,国语,2026-07-13,21:00,22:46,106,14
2楼1号厅部分按摩椅,2,三国第一部争洛阳,4281,国语,2026-07-13,11:10,13:27,137,0
2楼1号厅部分按摩椅,2,三国第一部争洛阳,4281,国语,2026-07-13,13:40,15:57,137,13
2楼1号厅部分按摩椅,2,三国第一部争洛阳,4281,国语,2026-07-13,16:10,18:27,137,13
2楼1号厅部分按摩椅,2,三国第一部争洛阳,4281,国语,2026-07-13,18:40,20:57,137,13
2楼1号厅部分按摩椅,2,三国第一部争洛阳,4281,国语,2026-07-13,21:10,23:27,137,13
2楼2号速度与激情厅部分按摩椅,3,三国第一部争洛阳,4281,国语,2026-07-13,10:20,12:37,137,0
2楼2号速度与激情厅部分按摩椅,3,三国第一部争洛阳,4281,国语,2026-07-13,12:50,15:07,137,13
2楼2号速度与激情厅部分按摩椅,3,三国第一部争洛阳,4281,国语,2026-07-13,15:20,17:37,137,13
2楼2号速度与激情厅部分按摩椅,3,三国第一部争洛阳,4281,国语,2026-07-13,17:50,20:07,137,13
2楼2号速度与激情厅部分按摩椅,3,三国第一部争洛阳,4281,国语,2026-07-13,20:20,22:37,137,13
2楼3号厅部分按摩椅,4,特立独行,4280,国语,2026-07-13,11:00,13:03,123,0
2楼3号厅部分按摩椅,4,小黄人与大怪兽,4288,原版,2026-07-13,13:15,14:45,90,12
2楼3号厅部分按摩椅,4,小黄人与大怪兽,4288,原版,2026-07-13,15:00,16:30,90,15
2楼3号厅部分按摩椅,4,小黄人与大怪兽,4288,原版,2026-07-13,16:45,18:15,90,15
2楼3号厅部分按摩椅,4,功夫女足,4292,国语,2026-07-13,18:30,20:16,106,15
2楼3号厅部分按摩椅,4,八仙,4296,国语,2026-07-13,20:30,22:54,144,14
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,11:00,12:46,106,0
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,13:00,14:46,106,14
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,15:00,16:46,106,14
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,17:00,18:46,106,14
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,19:00,20:46,106,14
2楼4号优选福励厅,5,功夫女足,4292,国语,2026-07-13,21:00,22:46,106,14
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,10:30,12:16,106,0
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,12:30,14:16,106,14
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,14:30,16:16,106,14
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,16:30,18:16,106,14
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,18:30,20:16,106,14
3楼5号厅部分按摩椅,6,功夫女足,4292,国语,2026-07-13,20:30,22:16,106,14
3楼6号泰隆银行厅部分按摩椅,7,小黄人与大怪兽,4288,原版,2026-07-13,11:00,12:30,90,0
3楼6号泰隆银行厅部分按摩椅,7,功夫女足,4292,国语,2026-07-13,12:45,14:31,106,15
3楼6号泰隆银行厅部分按摩椅,7,功夫女足,4292,国语,2026-07-13,14:45,16:31,106,14
3楼6号泰隆银行厅部分按摩椅,7,功夫女足,4292,国语,2026-07-13,16:45,18:31,106,14
3楼6号泰隆银行厅部分按摩椅,7,功夫女足,4292,国语,2026-07-13,18:45,20:31,106,14
3楼6号泰隆银行厅部分按摩椅,7,功夫女足,4292,国语,2026-07-13,20:45,22:31,106,14
3楼7号厅,8,玩具总动员5,4269,原版,2026-07-13,11:00,12:42,102,0
3楼7号厅,8,特立独行,4280,国语,2026-07-13,12:55,14:58,123,13
3楼7号厅,8,特立独行,4280,国语,2026-07-13,15:15,17:18,123,17
3楼7号厅,8,特立独行,4280,国语,2026-07-13,17:30,19:33,123,12
3楼7号厅,8,八仙,4296,国语,2026-07-13,19:45,22:09,144,12
2 三江VIP厅,9,海洋奇缘启航,4293,原版,2026-07-13,12:00,13:56,116,0
2 三江VIP厅,9,后室,4279,原版,2026-07-13,14:10,16:01,111,14
2 三江VIP厅,9,后室,4279,原版,2026-07-13,16:15,18:06,111,14
2 三江VIP厅,9,特立独行,4280,国语,2026-07-13,18:20,20:23,123,14
2 三江VIP厅,9,特立独行,4280,国语,2026-07-13,20:40,22:43,123,17
"""
# 将csv转化成字典
def csv_to_obj(csv_data):
f = StringIO(csv_data)
print(csv_data, f)
reader = csv.DictReader(f)
return list(reader)
def get_real_data(cinema_code: str, show_date: str):
db_config = {
'host': '172.16.1.63',
'port': 3306,
'user': 'root',
'password': 'Cine123456',
'database': 'dingxin_toolbox',
}
db_conn = pymysql.connect(**db_config)
db_cursor = db_conn.cursor(cursor=DictCursor)
db_cursor.execute(
"SELECT * FROM dingxin_toolbox.ai_show_result WHERE zz_code=%s AND show_date=%s AND is_ai_show=%s",
(cinema_code, show_date, 0))
real_data = db_cursor.fetchone()
return real_data['show']
def count_data(data):
count = len(data) - 1
movie_dict = {}
for movie in data[1:]:
movie_name = movie[None][2]
if movie_name in movie_dict.keys():
movie_dict[movie_name] += 1
else:
movie_dict[movie_name] = 1
movie_dict = dict(sorted(movie_dict.items(), key=lambda item: item[1], reverse=True))
print(f"{count}")
for key, value in movie_dict.items():
print(f"{key}》: {value}场 占比{round(value / count * 100, 2)}%")
def _get_hall_count(show: list) -> dict:
hall_show_count = dict()
for show in show[1:]:
hall = show[None][1]
if hall in hall_show_count.keys():
hall_show_count[show[None][1]] += 1
else:
hall_show_count[show[None][1]] = 1
return hall_show_count
def get_hall_show_count(ai: list, real: list) -> dict:
ai_hall_show_count = _get_hall_count(ai)
real_hall_show_count = _get_hall_count(real)
more = ai_hall_show_count if len(ai_hall_show_count) >= len(real_hall_show_count) else real_hall_show_count
hall_show_count = dict()
for key in more.keys():
hall_show_count[key] = ai_hall_show_count[key] if ai_hall_show_count.get(key, 0) >= real_hall_show_count.get(
key, 0) else real_hall_show_count[key]
return hall_show_count
def show_data(zz_code: str, show_date: str):
real_obj = csv_to_obj(get_real_data(zz_code, show_date))
ai_obj = csv_to_obj(s)
print('ai_obj', ai_obj)
print('real_obj', real_obj)
hall_show_count = get_hall_show_count(ai_obj, real_obj)
print(hall_show_count)
if __name__ == '__main__':
count_data(csv_to_obj(s))
# show_data('33040301', '2026-07-13')