From a6b06735f629bfeccb24158771c17b76f3d887e1 Mon Sep 17 00:00:00 2001 From: Cricial <2911646453@qq.com> Date: Sat, 18 Oct 2025 23:18:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=97=E4=BC=A0002?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/evaluate_func.cpython-38.pyc | Bin 8210 -> 8284 bytes GA_Agent_0925/conf_db.yaml | 10 + GA_Agent_0925/conf_experiment.yaml | 2 +- GA_Agent_0925/config.json | 2 +- GA_Agent_0925/count_firm.csv | 400 +++++++------- GA_Agent_0925/count_firm_prod.csv | 523 +++++++++--------- GA_Agent_0925/count_prod.csv | 144 ++--- GA_Agent_0925/evaluate_func.py | 17 +- GA_Agent_0925/main.py | 4 +- GA_Agent_0925/myplot.png | Bin 0 -> 40219 bytes .../vulnerable35_match_results/conf_db.yaml | 10 + .../conf_db_prefix.yaml | 1 + .../process_vulnerable_products.py | 61 ++ .../query_top35_products.sql | 34 ++ .../vulnerable35_match_results.csv | 49 ++ GA_Agent_0925/多功能.py | 2 +- __pycache__/firm.cpython-38.pyc | Bin 11852 -> 11968 bytes firm.py | 6 +- 18 files changed, 712 insertions(+), 553 deletions(-) create mode 100644 GA_Agent_0925/conf_db.yaml create mode 100644 GA_Agent_0925/myplot.png create mode 100644 GA_Agent_0925/vulnerable35_match_results/conf_db.yaml create mode 100644 GA_Agent_0925/vulnerable35_match_results/conf_db_prefix.yaml create mode 100644 GA_Agent_0925/vulnerable35_match_results/process_vulnerable_products.py create mode 100644 GA_Agent_0925/vulnerable35_match_results/query_top35_products.sql create mode 100644 GA_Agent_0925/vulnerable35_match_results/vulnerable35_match_results.csv diff --git a/GA_Agent_0925/__pycache__/evaluate_func.cpython-38.pyc b/GA_Agent_0925/__pycache__/evaluate_func.cpython-38.pyc index 0f5c8ed84e6e7dad6a78cc167a0f8caaee03127a..5729927c15643f4ca8aaf04f724046ccfd1bd6c2 100644 GIT binary patch delta 614 zcmaKp!E4h{9LM{6t7)iaV=FDic8xF*iyoFXSsHiQ9K(TAnAL3 z(nG>p?*@*Xc#@;(rkQ4?K7f4?PI}UgvoU-|u_*{XW0ndoS;J;m3lqsVMmj zKGpZXAHDskc+zCC>&DK0&ktPI+40?`k-U(8!Z<+WPuHMx%RR+5EbX5xWnR9>V%;iP}b%rwcD`7Wwlm#jQM(bw7WDLd-&Im cxTRi)ZT?W*lKNta0spG59Sz9LG1KC>ln{ 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 literal 0 HcmV?d00001 diff --git a/GA_Agent_0925/vulnerable35_match_results/conf_db.yaml b/GA_Agent_0925/vulnerable35_match_results/conf_db.yaml new file mode 100644 index 0000000..b7ef16e --- /dev/null +++ b/GA_Agent_0925/vulnerable35_match_results/conf_db.yaml @@ -0,0 +1,10 @@ +# read by orm +is_local_db: True + +local: + user_name: iiabm_user + password: iiabm_pwd + db_name: iiabmdb_20250925 + address: 'localhost' + port: 3306 + diff --git a/GA_Agent_0925/vulnerable35_match_results/conf_db_prefix.yaml b/GA_Agent_0925/vulnerable35_match_results/conf_db_prefix.yaml new file mode 100644 index 0000000..0e48fd8 --- /dev/null +++ b/GA_Agent_0925/vulnerable35_match_results/conf_db_prefix.yaml @@ -0,0 +1 @@ +db_name_prefix: without_exp diff --git a/GA_Agent_0925/vulnerable35_match_results/process_vulnerable_products.py b/GA_Agent_0925/vulnerable35_match_results/process_vulnerable_products.py new file mode 100644 index 0000000..53482ba --- /dev/null +++ b/GA_Agent_0925/vulnerable35_match_results/process_vulnerable_products.py @@ -0,0 +1,61 @@ +import pandas as pd +from sqlalchemy import text + +from orm import engine + +# =============================== +# 数据库连接 +# =============================== + +sql_file = "query_top35_products.sql" + +# 指定对比列表 +specified_list = [ + '61','68','65','66','59','71','77','7','38','95','58','90','56','57','97','98', + '27','8','11','9','21','96','99','100','44','45','46','47','48','49','50','51', + '52','53','54','55' +] +specified_set = set(specified_list) + +# =============================== +# 执行 SQL 查询 +# =============================== +with open(sql_file, "r", encoding="utf-8") as f: + str_sql = f.read() + +# 使用 connect() 解决 AttributeError +with engine.connect() as conn: + df = pd.read_sql(text(str_sql), conn) + +print(f"[信息] 查询完成,获取到 {len(df)} 条记录。") + +# =============================== +# 按 ga_id 分组计算匹配情况 +# =============================== +all_results = [] + +for ga_id, group in df.groupby("ga_id"): + vulnerable35_product = group['id_product'].astype(str).tolist() + vulnerable_set = set(vulnerable35_product) + + matching = vulnerable_set & specified_set + extra = vulnerable_set - specified_set + missing = specified_set - vulnerable_set + + all_results.append({ + "ga_id": ga_id, + "vulnerable35": ",".join(vulnerable35_product), + "matching_count": len(matching), + "matching_products": ",".join(matching), + "extra_count": len(extra), + "extra_products": ",".join(extra), + "missing_count": len(missing), + "missing_products": ",".join(missing) + }) + +# =============================== +# 输出 CSV +# =============================== +df_results = pd.DataFrame(all_results) +df_results.to_csv("vulnerable35_match_results.csv", index=False, encoding='utf-8-sig') +print("[完成] 已生成 vulnerable35_match_results.csv") diff --git a/GA_Agent_0925/vulnerable35_match_results/query_top35_products.sql b/GA_Agent_0925/vulnerable35_match_results/query_top35_products.sql new file mode 100644 index 0000000..0231be9 --- /dev/null +++ b/GA_Agent_0925/vulnerable35_match_results/query_top35_products.sql @@ -0,0 +1,34 @@ +WITH s_disrupt AS ( + SELECT s_id, id_firm, id_product, MIN(ts) AS ts, ga_id + FROM iiabmdb_20250925.without_exp_result + WHERE `status` = 'D' + GROUP BY s_id, id_firm, id_product, ga_id +), + +s_multiple AS ( + -- 筛选出现超过1次的 s_id + SELECT s_id, ga_id + FROM s_disrupt + GROUP BY s_id, ga_id + HAVING COUNT(*) > 1 +), + +product_count AS ( + -- 统计每个 ga_id 下每个产品出现次数 + SELECT s.ga_id, s.id_product, COUNT(*) AS cnt + FROM s_disrupt s + JOIN s_multiple m ON s.s_id = m.s_id AND s.ga_id = m.ga_id + GROUP BY s.ga_id, s.id_product +), + +ranked_products AS ( + -- 按每个 ga_id 的产品出现次数排序,并取前35 + SELECT *, + ROW_NUMBER() OVER (PARTITION BY ga_id ORDER BY cnt DESC) AS rn + FROM product_count +) + +SELECT ga_id, id_product, cnt +FROM ranked_products +WHERE rn <= 35 +ORDER BY ga_id, rn; diff --git a/GA_Agent_0925/vulnerable35_match_results/vulnerable35_match_results.csv b/GA_Agent_0925/vulnerable35_match_results/vulnerable35_match_results.csv new file mode 100644 index 0000000..538021c --- /dev/null +++ b/GA_Agent_0925/vulnerable35_match_results/vulnerable35_match_results.csv @@ -0,0 +1,49 @@ +ga_id,vulnerable35,matching_count,matching_products,extra_count,extra_products,missing_count,missing_products +03269d9f,"95,90,91,92,52,93,55,99,51,50,9,94,54,53,47,44,46,48,49,45,41,42,38,43,39,40,10,11,7,12,25,15,33,73,32",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,91,73,94,41,39,15,10,25,32,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +053c105b,"95,99,90,91,55,50,53,52,92,51,54,93,94,9,48,47,44,46,49,39,38,45,40,43,41,42,10,11,15,33,12,7,25,31,36",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,25,93,31,40,94,41,39,15,10,36,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +07257290,"95,99,90,91,52,53,51,50,92,55,93,54,94,9,49,47,48,39,44,46,45,43,38,40,42,41,10,11,25,7,15,12,33,26,18",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,18,40,26,94,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +12eb85fc,"95,99,90,91,51,52,93,92,50,53,54,55,9,94,47,49,48,46,44,45,38,40,43,39,41,42,10,11,7,25,12,33,15,37,19",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,19,94,41,39,37,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +1809ec77,"95,99,90,91,93,92,53,52,50,94,55,51,54,9,49,44,47,40,46,45,39,48,38,43,41,42,10,11,20,26,66,16,15,64,61",20,"90,61,44,45,95,49,11,99,52,50,47,9,66,46,54,51,48,55,38,53",15,"42,93,40,26,94,41,39,16,15,20,10,91,43,64,92",16,"98,71,57,56,65,7,97,100,8,68,77,58,21,59,96,27" +19cae10f,"95,99,90,91,51,50,53,92,52,93,55,54,9,94,47,49,46,48,45,44,38,43,39,40,41,42,10,11,25,12,33,15,7,64,8",20,"90,7,44,45,95,49,11,99,8,52,50,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,41,39,15,64,10,25,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,61,68,77,58,21,59,96,27" +1a4227c6,"95,99,90,91,52,92,54,53,51,55,50,93,94,9,47,49,46,48,44,45,43,39,38,41,42,40,10,11,7,25,33,15,12,74,68",20,"90,7,68,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,74,41,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,65,56,97,100,8,61,77,58,21,59,96,27" +1f977ec5,"95,99,90,91,52,92,50,55,53,51,93,54,94,9,48,47,46,44,49,45,40,41,38,39,43,42,10,11,12,15,25,33,7,35,64",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,35,40,94,41,39,15,64,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +28481dd9,"95,99,90,91,52,51,55,50,92,53,54,93,94,9,47,49,44,46,48,38,43,45,40,39,41,42,10,11,25,7,33,12,15,32,97",20,"90,7,44,45,95,49,11,99,52,50,97,47,9,46,54,51,48,55,38,53",15,"42,93,40,91,94,41,39,15,10,25,32,43,12,33,92",16,"98,71,57,66,56,65,100,8,61,68,77,58,21,59,96,27" +2ef7bd37,"95,99,90,91,53,52,50,92,54,51,55,93,94,9,49,47,46,44,48,39,45,43,41,40,38,42,10,11,7,25,33,15,12,60,30",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,60,93,40,94,30,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +360d68d3,"95,99,90,91,9,53,92,93,50,52,51,55,54,94,47,44,46,49,48,43,39,45,38,40,41,42,10,11,15,33,7,12,27,69,72",20,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,53,38,27",15,"42,93,40,94,41,69,39,72,15,10,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96" +400b809d,"95,99,90,91,51,52,50,53,92,55,54,93,9,47,94,49,44,46,39,38,48,43,40,45,41,42,10,11,33,7,25,12,15,24,19",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,19,94,41,43,39,15,10,25,91,24,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +40408929,"95,99,90,91,53,51,52,93,92,50,55,54,94,9,49,47,46,48,44,45,39,38,43,40,41,42,10,11,25,12,33,7,15,70,29",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,70,94,41,39,29,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +4c00c80f,"95,99,90,91,52,51,50,92,54,53,55,93,9,94,46,44,47,49,48,45,43,38,39,40,41,42,10,11,15,7,12,33,25,28,59",20,"90,7,44,45,95,49,11,99,52,50,59,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,28,41,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,96,27" +54476776,"95,90,91,93,55,99,92,52,53,51,50,94,9,54,47,49,44,46,48,45,42,41,38,39,43,40,10,11,12,7,15,33,25,74,16",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,74,41,39,16,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +5848e257,"95,90,99,91,50,53,92,55,52,54,93,51,94,9,49,44,46,47,48,40,43,45,39,38,41,42,10,11,15,33,7,12,25,35,74",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,35,40,94,74,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +60a50e3a,"95,99,90,91,52,53,51,55,50,54,92,93,9,94,44,46,49,47,48,43,38,40,39,45,41,42,10,11,12,7,33,25,15,79,23",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,41,39,15,10,25,91,43,79,12,23,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +64f2207b,"95,90,99,91,50,52,53,93,55,92,51,54,9,94,47,49,46,48,44,39,43,38,41,45,40,42,10,11,7,12,25,33,15,60,35",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,60,35,40,93,94,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +69c68390,"95,99,90,91,92,50,51,52,55,53,93,54,94,9,44,49,46,47,48,38,39,43,41,45,40,42,10,11,25,12,33,7,15,74,27",20,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,53,38,27",15,"42,93,40,94,74,41,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96" +6a5f8b48,"95,90,99,91,52,54,55,53,92,51,50,93,9,94,47,46,49,48,44,43,39,45,38,40,41,42,10,11,25,33,15,7,12,29,68",20,"90,7,68,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,41,39,29,15,10,25,91,43,12,33,92",16,"98,71,57,66,65,56,97,100,8,61,77,58,21,59,96,27" +6a8ce407,"95,90,99,91,52,51,55,53,92,93,50,54,9,94,47,48,49,46,44,38,45,41,39,43,42,40,10,11,15,25,7,12,33,63,23",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,25,93,40,94,41,39,15,10,63,91,43,12,23,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +6d45f1e1,"95,99,90,91,50,53,52,51,92,55,93,54,9,94,49,46,47,44,48,39,40,45,38,43,41,42,10,11,12,25,7,15,33,13,68",20,"90,7,68,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,41,39,15,10,25,91,43,13,12,33,92",16,"98,71,57,66,65,56,97,100,8,61,77,58,21,59,96,27" +6f1514cd,"95,99,90,91,53,55,52,92,50,93,51,54,9,94,49,47,48,46,43,39,44,45,41,38,40,42,10,11,15,25,33,12,7,30,27",20,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,53,38,27",15,"42,93,40,94,30,41,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96" +79566791,"95,99,90,91,50,52,51,55,93,53,92,54,9,94,49,47,48,44,46,40,45,43,39,38,41,42,10,11,12,25,33,7,15,63,59",20,"90,7,44,45,95,49,11,99,52,50,59,47,9,46,54,51,48,55,38,53",15,"42,25,93,40,94,41,39,15,10,63,91,43,12,33,92",16,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,96,27" +7bd74425,"95,99,90,91,51,52,93,50,53,92,55,54,9,94,47,44,49,48,46,40,45,43,38,39,41,42,10,11,33,25,15,12,7,26,23",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,26,94,41,39,15,10,25,91,43,12,23,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +80c8326a,"95,99,90,91,52,50,92,53,93,55,54,51,9,94,49,46,47,44,48,45,40,39,43,38,41,42,10,11,7,25,15,33,12,73,31",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,31,40,73,94,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +8ce09dcc,"95,90,99,91,55,92,52,54,50,53,93,51,94,9,48,46,49,47,44,45,43,40,41,39,38,42,10,11,7,25,15,12,33,69,32",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,91,94,41,69,39,15,10,25,32,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +8e527645,"95,99,90,91,93,55,92,53,50,52,51,54,94,9,47,46,49,48,44,45,43,39,40,38,42,41,10,11,25,12,15,33,7,62,37",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,62,93,40,94,41,39,37,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +93f9d03b,"95,99,90,91,51,50,93,92,53,54,55,52,9,94,47,46,48,44,49,38,39,43,45,41,40,42,10,11,33,12,7,25,15,64,35",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,35,40,94,41,39,15,64,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +9965ff7d,"95,90,91,99,55,93,92,52,53,51,94,54,50,9,49,48,47,46,44,45,41,43,39,38,42,40,10,11,15,12,33,25,7,28,73",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,73,94,28,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +b5b6882d,"95,99,90,91,53,52,54,50,55,93,92,51,94,9,49,47,46,44,48,39,43,45,40,38,41,42,10,11,25,33,15,12,7,18,74",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,18,40,94,74,41,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +bd999a28,"95,99,90,91,53,52,55,51,50,54,92,93,9,94,49,47,39,46,48,44,45,38,40,43,42,41,10,11,33,25,12,15,7,65,29",20,"90,7,44,45,95,49,11,65,99,52,50,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,41,39,29,15,10,25,91,43,12,33,92",16,"98,71,57,66,56,97,100,8,61,68,77,58,21,59,96,27" +be8d64fc,"95,99,90,91,52,51,93,54,50,55,92,53,94,9,47,49,46,44,48,45,38,43,39,41,40,42,10,11,25,7,33,12,15,13,30",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,30,41,39,15,10,25,91,43,13,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +c40fd813,"95,99,90,91,50,53,51,52,93,55,92,54,9,94,49,47,44,39,46,45,48,38,40,41,43,42,10,11,15,33,25,12,7,37,28",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,28,41,39,37,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +c5f9a379,"95,99,90,91,51,53,50,52,92,55,54,93,9,94,47,49,45,48,44,46,43,39,40,38,41,42,10,11,7,15,12,25,33,66,65",21,"90,7,44,45,95,49,11,65,99,52,50,47,9,66,46,54,51,48,55,38,53",14,"42,93,40,94,41,39,15,10,25,91,43,12,33,92",15,"98,71,57,56,97,100,8,61,68,77,58,21,59,96,27" +cd8df852,"95,99,90,91,53,52,50,55,51,92,93,54,94,9,49,47,46,48,44,45,39,40,41,43,38,42,10,11,12,33,7,15,25,35,69",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,35,40,94,41,69,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +cfec2d46,"95,99,90,91,53,52,50,93,51,55,92,54,9,94,49,45,47,44,48,46,40,39,43,38,42,41,10,11,33,7,12,15,25,37,18",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,18,40,94,41,39,37,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +d0d03833,"95,99,90,91,51,50,53,52,92,55,54,93,94,9,47,49,48,44,46,39,38,45,43,40,41,42,10,11,7,15,12,25,33,62,68",20,"90,7,68,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",15,"42,62,93,40,94,41,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,65,56,97,100,8,61,77,58,21,59,96,27" +d8521d12,"95,99,90,91,51,92,52,53,93,50,55,54,9,94,49,44,47,46,48,39,45,40,38,43,41,42,10,11,33,7,15,12,25,16,72",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,41,39,72,16,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +d8836638,"95,99,90,91,50,54,53,51,52,55,93,92,9,94,47,49,46,48,44,38,39,43,40,41,45,42,10,11,15,33,7,12,25,97,69",20,"90,7,44,45,95,49,11,99,52,50,97,47,9,46,54,51,48,55,38,53",15,"42,93,40,94,41,69,39,15,10,25,91,43,12,33,92",16,"98,71,57,66,56,65,100,8,61,68,77,58,21,59,96,27" +daf0e9ef,"95,99,90,91,52,53,55,50,92,51,54,93,9,94,49,48,47,39,46,45,44,40,38,41,43,42,10,11,15,33,25,7,12,69,71",20,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,71,55,38,53",15,"42,93,40,94,41,69,39,15,10,25,91,43,12,33,92",16,"98,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +dbfb776b,"95,90,91,92,93,55,52,99,53,9,50,94,51,54,47,49,48,46,44,45,41,42,40,38,43,39,10,11,15,25,12,33,7,34,69",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,34,41,69,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +e087b751,"95,99,90,91,93,53,50,51,54,55,52,92,9,94,49,47,48,44,46,45,39,43,38,40,41,42,10,11,25,33,12,7,15,31,23",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,31,40,94,41,39,15,10,25,91,43,12,23,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +e2a464f9,"95,99,90,91,51,53,50,52,93,55,92,54,9,94,49,47,48,44,45,39,46,38,40,41,43,42,10,11,15,7,25,12,33,29,69",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,41,69,29,39,15,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +e73abaeb,"95,99,90,91,54,52,55,51,50,93,53,92,94,9,47,46,49,48,43,38,44,45,40,39,41,42,10,11,25,12,15,33,7,69,64",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,40,94,41,69,39,15,64,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +f4b59d31,"95,99,90,91,50,51,52,55,53,93,92,54,94,9,47,49,46,44,48,40,45,38,43,39,41,42,10,11,25,15,33,12,7,20,31",19,"90,7,44,45,95,49,11,99,52,50,47,9,46,54,51,48,55,38,53",16,"42,93,31,40,94,41,39,15,20,10,25,91,43,12,33,92",17,"98,71,57,66,56,65,97,100,8,61,68,77,58,21,59,96,27" +f54db476,"95,99,90,91,52,92,93,51,55,53,50,54,9,94,47,44,49,48,46,45,43,39,38,40,41,42,10,11,12,15,33,7,25,36,97",20,"90,7,44,45,95,49,11,99,52,50,97,47,9,46,54,51,48,55,38,53",15,"42,25,93,40,94,41,39,15,10,36,91,43,12,33,92",16,"98,71,57,66,56,65,100,8,61,68,77,58,21,59,96,27" +f9ef00a1,"95,99,90,91,52,51,92,55,50,53,93,54,94,9,49,47,48,44,46,45,39,41,38,40,43,42,10,11,15,7,12,33,25,65,59",21,"90,7,44,45,95,49,11,65,99,52,50,59,47,9,46,54,51,48,55,38,53",14,"42,93,40,94,41,39,15,10,25,91,43,12,33,92",15,"98,71,57,66,56,97,100,8,61,68,77,58,21,96,27" diff --git a/GA_Agent_0925/多功能.py b/GA_Agent_0925/多功能.py index 64f6e35..81f4fc0 100644 --- a/GA_Agent_0925/多功能.py +++ b/GA_Agent_0925/多功能.py @@ -41,7 +41,7 @@ from orm import connection # 读取 SQL -ga_id="c943f2c6" +ga_id="c40fd813" with open("SQL_analysis_risk_ga.sql", "r", encoding="utf-8") as f: str_sql = text(f.read()) print(str_sql[:300]) diff --git a/__pycache__/firm.cpython-38.pyc b/__pycache__/firm.cpython-38.pyc index f4a6bebbc9ecab12d586129dbe9ecc38e3ed3a71..b6bfb6a61e35d2ca9c941eb6d95d2e9925c73ca3 100644 GIT binary patch delta 1049 zcmYjPU1$_n6u#%)o!QC$%x;oh>m*sTZew;=O-=p7hl&&f=AmW|~Qn zRxmj04+&b(VC=C~YpaRqqn2h6N})w4edwPBUka;_zE}tqOMNL+&)q6?4)fjbe)pX3 z&YXLHIe2%#+!u|87(M%L{Pp3R@0>T=3Y%#rnFNQ8K|g@v+~NI#M&Sg;w0;fPE+zv~ zn`KffYBQo=mwYeF>yMRD9%^A(93DLEROIMTrSJU2AJE|+015CN-sM(TRzgY4gL~;C zX6q6x+R9?Yv#qSmB~;_YJ7l=TDd!gFHSW-0jb5w*(ltvEd+n!MTPKz_9;MNCSA^he$JrX-t}T;DrCP znF5&fAIF4%%edV1J>0~vnoImkhQFoTFr8e7#l%`z!uf>Dzj-D0z_)%eSpc};-&rxo zv1UcFV4ZG9) zX7~)vJ!TtrgB?=+9pRLxdtxOU;W9X<8e-Bqv%`ek1A4j5r7hVhg4Ri*$~ZA6tko9%nslptllFo65!(Z_M}S0~apr!C z*Vh!17ggdZ1*a9%i!Y(x*$!JVnAwS=oj<~U+?1V#EBJM`4-Q~3cNRXtbbb{s<;Gx$ z*clkE&wt7fz^I>FI}PCA^>ruVD0Zy>6^`N4^J}0nNMzzc;z4*p5Wy1?JbRizOwoR%_NhMVOeMaP&Uu-tY{IymNO}&c9==6UG#|-P3nVf69;=fLdcOI zVeai-|528TNmtr937y?t30c?&hk$&Bgb0a77}--wS#Kbp=T7sJU_C>>m|Xf$LeA)# zZWr}IZ&7YeKJKMBw>UP7QUTU?%!)5C8I#&2h~rPW4 z0g_IMC&-~2>wR}&zw^Nt1=!{AfDmvNjo>4=hEIcOxQ&}jqBuW1759be;11plS#WRM z*8umOec@&RbY4st;P44sBWG}9#EWk#+u$2zwPRa}7hjh=gm*Yx+6^52WwZ9%ETyG% z+A^1-gWJ?GTTEmfT)AB!Ql-))nSW_6lJd$zlGReaZCpw2 z9-^q<<_lF;Ks|GTzgB)(rg9`(!)o149qO1c_H{9?ipGnJtO}Y~Jqq;-OYmCsz=WS< zcE$({iXrfubAuaD?kp<*3@`~3l_L|4RKUfmYNgYB0_$L|097_>`(RqR_99S2>N@nhKbSx$0&3 zvgQe_#`9AS(^061H^F+$#g9WP{)iugO~i7%UYmt2d22>pl8)4gx*mY-=t>-fJ$Nkf z9QNXdX?E?fl0TzxPT{=5h{6ShQH6^NSMk@h*-H&FJF5vMc-EOgbCS8jtTw}DB@La1 m7$1I9SZYU2wfbB4)}5J5`_`@