繁体   English   中英

使用Python:如何从sql查询中获取表名并在存在模式的表模式之前添加单词

Using Python: how to get table names from sql query and add a word before the table schema where schemas are present

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个JSON文件,正在Python中用作字典。 json文件很大。 我正在尝试编写python代码以通过添加“源”来更新每个“查询”。 在表架构之前。 然后将更新后的字典用于其他编程目的。

SQL脚本可以具有联接,笛卡尔联接,子查询等。

预期产量:

 "query": "SELECT a.column1, b.column2
 FROM source.abcd.hist a, source.efgh.present b
 WHERE (select column3, column4 from UPS where a.id = b.id )"

 "query": "SELECT a.column1, b.column2
 FROM source.apple.hist a, source.mango.present b
 WHERE (select column3, column4 from source.my.ORANGE where a.id = b.id

{"result":[{
"query": "SELECT a.column1, b.column2
FROM abcd.hist a, efgh.present b
WHERE (select column3, column4 from UPS where a.id = b.id )"
},
{"query": "SELECT a.column1, b.column2
FROM apple.hist a, mango.present b
WHERE (select column3, column4 from my.ORANGE where a.id = b.id )"}
]}
1 个回复

您的结果是一个字典{},其中第一个键“结果”包含字典{}的列表[],其中每个字典都有一个键“ query”,其键值类似于SQL查询。

假设您的输出对象称为op,则可以得到所需的结果,如下所示:

for k in op['result']: # For each dictionary in result
    print(str(k)[1:-1]) # Cast to a string and strip curlies

编辑:

def addSource(q):
    lines = q.split("\n")
    for n,k in enumerate(lines):
        if(k.startswith("FROM")):
            q[n] = k.replace("FROM ","FROM source.").replace(", ",", source.")
    return("\n".join(q))

然后

for n,k in enumerate(op['result']):
    op['result'][n]["query"] =  addSource(k["query"])
2 如何使用python 3从sql查询中获取输出列,表名?

我在sybase iq中有一堆SQL查询。 我想运行一个python代码从SQL查询生成表名,列名,条件,并在excel中获取输出 我尝试使用Python代码,并且能够以字符串形式运行和读取SQL。 我还能够在SQL中获取最终查询的列标题(一个SQL可能有多个查询正在馈入最终查询) ...

8 从SQL查询字符串获取表名和列名

我正在将CSV文件读取到我的Java程序中,并且每条记录中都有一个sql查询。 我想解析此(选择)SQL查询,以查找那些查询中提到的表名和列名。 例如,从员工中选择年龄,姓名 结果: ----表格:[员工] ----栏:[年龄,姓名] 注意:我不想触发查询,否则我 ...

9 在模式/表名中使用'['和']'字符时,如何避免SQL注入?

我有几种上下文,其中表名或模式不是硬编码的,而是由管理员配置的,或者更糟的是由用户输入生成的。 由于案例很简单(模式和表名使用简单的英语,没有数字或符号),因此很容易通过仅禁止AZ和az范围以外的任何字符来避免SQL注入。 但是,当应用程序必须处理任何Unicode字符(可以是模式名或表 ...

10 使用UNION进行SQL多表查询,如何获取表名

我有以下表格结构。 一个表EQUITIES,此表中的每一行都有一个表。 每个工具的表都与此类似:命名为EE5367126893的表(各种名称和名称存储在权益表中)。 编辑:我的代码很糟糕。 它以某种方式使我得到错误的结果,而且我似乎找不到错误。 它给了我结果: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM