119 lines
3.7 KiB
Python
119 lines
3.7 KiB
Python
import pandas as pd
|
|
import json
|
|
import utils
|
|
from config import MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB
|
|
import mysql.connector
|
|
|
|
# 读取 Excel 文件
|
|
df = pd.read_excel('/Users/zhengfei/Desktop/cb/ttt.xlsx', header=0)
|
|
|
|
# 将 DataFrame 转换为字典列表
|
|
data_list = df.to_dict(orient='records')
|
|
|
|
year = 2023
|
|
|
|
conn = mysql.connector.connect(
|
|
host = MYSQL_HOST,
|
|
user = MYSQL_USER,
|
|
password = MYSQL_PASSWORD,
|
|
database = MYSQL_DB
|
|
)
|
|
|
|
# 创建一个cursor对象来执行SQL语句
|
|
cursor = conn.cursor()
|
|
|
|
insert_query = '''
|
|
INSERT INTO measure_create_config
|
|
(config_id, meta_measure, same_mean_measure, measure_period, change_type, black_list)
|
|
VALUES (%s, %s, %s, %s, %s, %s)
|
|
'''
|
|
|
|
for data in data_list:
|
|
show_measure = str(data['指标'])
|
|
same_mean_measure = str(data['同义表述'])
|
|
period_measure = str(data['周期'])
|
|
change_measure = str(data['变动'])
|
|
black_list = str(data['黑名单词'])
|
|
config_id = utils.get_md5(show_measure)
|
|
insert_query_data = (config_id, show_measure, same_mean_measure, period_measure, change_measure, black_list)
|
|
cursor.execute(insert_query, insert_query_data)
|
|
conn.commit()
|
|
|
|
# 读取 Excel 文件
|
|
df_period = pd.read_excel('/Users/zhengfei/Desktop/cb/period.xlsx', header=0)
|
|
|
|
# 将 DataFrame 转换为字典列表
|
|
period_list = df_period.to_dict(orient='records')
|
|
|
|
period_insert_query = '''
|
|
INSERT INTO measure_create_period
|
|
(period_name, same_mean_period)
|
|
VALUES (%s, %s)
|
|
'''
|
|
|
|
for data in period_list:
|
|
period_name = str(data['标准表述'])
|
|
same_mean_period = str(data['同义表述'])
|
|
|
|
insert_query_data = (period_name, same_mean_period)
|
|
cursor.execute(period_insert_query, insert_query_data)
|
|
conn.commit()
|
|
|
|
data_query = '''
|
|
SELECT * FROM measure_create_config where delete_status = 0
|
|
'''
|
|
period_query = '''
|
|
SELECT * FROM measure_create_period
|
|
'''
|
|
|
|
cursor.execute(data_query)
|
|
data_list = cursor.fetchall()
|
|
|
|
cursor.execute(period_query)
|
|
period_list = cursor.fetchall()
|
|
|
|
for data in data_list:
|
|
config_id = data[0]
|
|
show_measure = data[1]
|
|
same_mean_measure = data[2]
|
|
period_measure = data[3]
|
|
change_measure = data[4]
|
|
same_mean_measure_arr = []
|
|
period_measure_arr = []
|
|
change_measure_arr = []
|
|
if same_mean_measure != 'nan' :
|
|
same_mean_measure_arr = same_mean_measure.split(',')
|
|
same_mean_measure_arr.append(show_measure)
|
|
if period_measure != 'nan' :
|
|
period_measure_arr = period_measure.split(',')
|
|
if change_measure != 'nan' :
|
|
change_measure_arr = change_measure.split(',')
|
|
|
|
for c in change_measure_arr:
|
|
period_measure_arr.append(c)
|
|
|
|
for x in period_measure_arr:
|
|
if x in change_measure_arr:
|
|
show_name = show_measure+x
|
|
else:
|
|
show_name = x+show_measure
|
|
for y in same_mean_measure_arr:
|
|
if x in change_measure:
|
|
parser_name = y+x
|
|
else:
|
|
parser_name = x+y
|
|
|
|
print(f'{show_name},{parser_name}')
|
|
for p in period_list:
|
|
period_exra_name = p[0]
|
|
period_exra_value = p[1]
|
|
if x.find(period_exra_name) != -1:
|
|
for v in period_exra_value.split(','):
|
|
if x in change_measure:
|
|
parser_name = y + x.replace(period_exra_name, v)
|
|
else:
|
|
parser_name = x.replace(period_exra_name, v) + y
|
|
print(f'{show_name},{parser_name}')
|
|
|
|
cursor.close()
|
|
conn.close() |