Python獲取帆軟報表所有SQL

問題描述:

需要知道帆軟報表里有哪些SQL, 用于運維或者分析數(shù)據(jù)血緣

解決

用python解析帆軟模板文件里的SQL
在帆軟 [管理系統(tǒng)]-[智能運維]-[資源遷移] 下導出所有模板文件, 解壓到/模板目錄, 然后用執(zhí)行
需要python庫 PyQueen 支持

pip3 install pyqueen -i https://pypi.tuna.tsinghua.edu.cn/simple/
from pyqueen import DataSource, FineReport

FR_DIR = '/模板目錄'

# 提取所有SQL
data = FineReport().extract_sql(FR_DIR)

# [可選] 如果需要把路徑改成相對路徑, 修改 `根目錄` 
for item in data:
    item['fr_path'] = str(str(item['fr_path'])[str(item['fr_path']).find('根目錄'):]).replace('\\', '/')

# [可選] 如果需要將結果入庫, 假設表名 `devops_fr_sql`
ds= DataSource(conn_type='mysql', host='192.168.1.10', port='', username='root', password='123456', db_name='dbname')

df = pd.DataFrame(data)
ds.exe_sql('truncate table devops_fr_sql')
ds.to_db(df=df, tb_name='devops_fr_sql')

擴展

如果需要進一步分析sql引用到的表, 可以配合PyQueen 解析表, 使用正則解析

對于復雜SQL準確度較低, 僅供參考

from pyqueen import Utils

Utils.sql2table(sql_str="select * from xxxxx")
Done
image.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Bookmarks 書簽欄 入職 華為新員工小百科(刷新時間202003023) - 人才供應知多少 - 3MS知...
    Btrace閱讀 1,716評論 0 0
  • 1、談談對http協(xié)議的認識流程:1.域名解析域名解析檢查順序為:瀏覽器自身DNS緩存---》OS自身的DNS緩存...
    Zzmi閱讀 871評論 0 0
  • 本文可以學習到以下內容: 用Python、pandas獲取sqlite3中的數(shù)據(jù)用Python、pandas獲取M...
    帥帥的Python閱讀 426評論 0 1
  • 本次內容涵蓋了Excel、Word、PPT、ODF、PDF、郵件、微信、文件處理等所有能在辦公場景實現(xiàn)自動化的庫,...
    知信學源閱讀 97評論 0 0
  • 基礎庫與工具日志處理系統(tǒng)工具郵件數(shù)據(jù)庫打印輸出命令行參數(shù)解析命令行界面庫GUI 工具算法與設計模式并行計算、分布式...
    mocobk閱讀 559評論 0 0

友情鏈接更多精彩內容