python - 如何使用python从点文件生成sql查询?
问题描述
从 file.dot,我需要生成 sql 查询以插入到 database.table
这是 file.dot 的摘录
digraph {
"source.table1" -> "db.dep1"[label="CHEC_DATE"];
"source.table2" -> "db.dep2"[label="CHECK_MAX_DATE"];
"db.dep2" -> "source.table3"[label="CHECK_DATE"];
"source.table2" -> "db.table4"[label="CHECK_MAX_DATE"];
}
我需要生成查询为
INSERT INTO dep_table (entity_name_1, entity_name_2, flag_dep) VALUES ('source.table1', 'db.dep1', 'CHECK_DATE');
INSERT INTO dep_table (entity_name_1, entity_name_2, flag_dep) VALUES ('source.table2', 'db.dep2', 'CHECK_MAX_DATE');
等等
我正在使用 Graphviz 从 file.dot 读取数据
import sys
from os import path, access, R_OK
import networkx as nx
from networkx.drawing import nx_agraph
import os
from graphviz import Source
file = open('file.dot', 'r')
text=file.read()
解决方案
那么 .dot 文件中的每一行都会进行一次 sql 查询?并且您需要插入的值都在双引号之间?如果是这样,您可以使用正则表达式查找双引号之间的所有字符串,然后像这样执行 sql 命令:
import re
for line in text :
values = re.findall('".+"',line)
sql_command = 'INSERT INTO X VAlUES' + '(' +values[0] + ',' values[1] #and so on
推荐阅读
- sql - 分区时的情况 - 组的同一列中具有两个特定值的组的返回值
- reactjs - 为什么用 ReactDOM.render 渲染的组件会丢失 react-redux 上下文(提供者)
- python - 如何加快 PlotDataItem.setData()?和/或仅在实时绘制流数据时重绘新点?
- c# - 如何在具有多个表的linq中使用join并使用orderby?
- vba - 根据文本框值填充多列列表框
- c - 实现可变参数使用函数的可选参数?
- amazon-web-services - 在 terraform 中使用本地变量进行变量的棘手转换
- python - 如何在绘图中添加条形上方的百分比差异
- reactjs - useEffect 挂钩不等待异步依赖
- android - 如何使我的布局可滚动: RefreshLayout + NesteScrollView + ViewPager + Tabs + RecyclerViewviewpager + Tabs + RecyclerView