首页 > 解决方案 > 如何使用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()

标签: pythondot

解决方案


那么 .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

推荐阅读