gpt4 book ai didi

python - 在python中解析sql查询

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:11 28 4
gpt4 key购买 nike

我希望能够获取如下所示的字符串并提取第一个参数 ( id ),然后使用它来打印出来。我一直在研究 python 的拆分,但我通常必须拆分 2 或 3 次才能获得可用的东西。

这是我尝试解析的字符串示例:

EntryError(u"(sqlite3.IntegrityError) UNIQUE constraint failed:
role.name, role.domain_id [SQL: u'INSERT INTO table1 (id, name,
domain_id, extra) VALUES (?, ?, ?, ?)'] [parameters: ('id',
'fake1name', '<<null>>', '{}')]",)

我尝试过类似的事情:

e = e.split("\'")
e = e.split(",")

但这给了我必须进一步解析的奇怪字符串。有没有更简单的方法来始终拉动 id来自 "[parameters: ('id', 'fake1name', '<<null>>', '{}')]"

这是我的代码:

except exception.EntryError as e:   

query = str(e)
# example of me using split to try and reduce the string
parsedstr = query.split("[")
parsedstr = parsedstr.split("\'")

# This will give me id like I want but it doesn't seem efficient
# prints: id
print parsedstr[1]

最佳答案

您可以使用正则表达式。

import re

...

except exception.EntryError as e:
print re.search("\[parameters: \('([^']+)", str(e)).group(1)

这将在异常字符串中搜索第一次出现的 [parameters: (' 并从该点开始匹配,直到遇到 '

关于python - 在python中解析sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com