import_release_option_clean.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import csv
  2. import pymysql
  3. import time
  4. from datetime import datetime
  5. # ====== DB CONFIG ======
  6. DB = {
  7. "host": "127.0.0.1",
  8. "port": 3306,
  9. "user": "root",
  10. "password": "root",
  11. "database": "recycle",
  12. "charset": "utf8mb4"
  13. }
  14. CSV_FILE = "t_chx_release_option.csv"
  15. def gen_id():
  16. """简单生成唯一ID(你后期可换成雪花)"""
  17. return int(time.time() * 1000)
  18. def main():
  19. conn = pymysql.connect(**DB)
  20. cur = conn.cursor()
  21. # ====== 内存映射(保证同名只生成一个ID)======
  22. step_map = {} # step_name -> step_id
  23. option_key_map = {} # (step_name, option_key_name) -> option_key_id
  24. with open(CSV_FILE, encoding="gb18030") as f:
  25. reader = csv.DictReader(f)
  26. for row in reader:
  27. step_name = row["step_name"].strip()
  28. option_key_name = row["option_key_name"].strip()
  29. option_name = row["option_name"].strip()
  30. # ---- step ----
  31. if step_name not in step_map:
  32. step_id = gen_id()
  33. step_map[step_name] = step_id
  34. else:
  35. step_id = step_map[step_name]
  36. # ---- option_key ----
  37. key = (step_name, option_key_name)
  38. if key not in option_key_map:
  39. option_key_id = gen_id()
  40. option_key_map[key] = option_key_id
  41. else:
  42. option_key_id = option_key_map[key]
  43. # ---- option ----
  44. option_id = gen_id()
  45. cur.execute("""
  46. INSERT INTO release_option
  47. (
  48. step_id,
  49. step_name,
  50. option_key_id,
  51. option_key_name,
  52. option_id,
  53. option_name,
  54. create_time,
  55. update_time
  56. )
  57. VALUES
  58. (%s,%s,%s,%s,%s,%s,%s,%s)
  59. """, (
  60. step_id,
  61. step_name,
  62. option_key_id,
  63. option_key_name,
  64. option_id,
  65. option_name,
  66. datetime.now(),
  67. datetime.now()
  68. ))
  69. conn.commit()
  70. cur.close()
  71. conn.close()
  72. print("✅ release_option 规范化导入完成")
  73. if __name__ == "__main__":
  74. main()