import csv import pymysql import time from datetime import datetime # ====== DB CONFIG ====== DB = { "host": "127.0.0.1", "port": 3306, "user": "root", "password": "root", "database": "recycle", "charset": "utf8mb4" } CSV_FILE = "t_chx_release_option.csv" def gen_id(): """简单生成唯一ID(你后期可换成雪花)""" return int(time.time() * 1000) def main(): conn = pymysql.connect(**DB) cur = conn.cursor() # ====== 内存映射(保证同名只生成一个ID)====== step_map = {} # step_name -> step_id option_key_map = {} # (step_name, option_key_name) -> option_key_id with open(CSV_FILE, encoding="gb18030") as f: reader = csv.DictReader(f) for row in reader: step_id = row["step_id"].strip() if step_id != "1": continue step_name = row["step_name"].strip() option_key_id = int(row["option_key_id"].strip()) option_key_name = row["option_key_name"].strip() option_id = int(row["option_id"].strip()) option_name = row["option_name"].strip() # ---- step ---- if step_name not in step_map: # step_id = gen_id() step_map[step_name] = step_id else: step_id = step_map[step_name] # ---- option_key ---- key = (step_name, option_key_name) if key not in option_key_map: # option_key_id = gen_id() option_key_map[key] = option_key_id else: option_key_id = option_key_map[key] # ---- option ---- # option_id = gen_id() is_default = 0 is_base_price_attr = 0 if option_key_name == "容量": is_base_price_attr = 1 cur.execute(""" INSERT INTO step1_attr ( step,attr_key,attr_name,value_id,value_name, is_default,is_normal,required,is_multi,sort_order,is_base_price_attr, create_time, update_time ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) """, ( 1, step_name, option_key_name, option_id, option_name, is_default, 1,1,0,0,is_base_price_attr, datetime.now(), datetime.now() )) conn.commit() cur.close() conn.close() print("✅ release_option 规范化导入完成") if __name__ == "__main__": main()