Python如何在运行时修复语法错误

Python如何在运行时修复语法错误,python,syntax-error,Python,Syntax Error,如果我从noSQL db接收到以下带有语法错误的字符串,该数据库以这种精确的格式存储该字符串,我如何将其分配给变量并在运行时“更正”语法错误。假设我无法更改它在数据库中的存储方式 由于这是一个语法错误,我甚至不能使用诸如replace或regex之类的字符串函数来删除包含电话号码的额外引号 string=“John Doe”(123)456-7890 期望的最终结果是它不会抛出语法错误并编译。 如果能得到任何帮助,我将不胜感激。谢谢。如果作为代码的一部分执行,该字符串赋值确实会抛出一个语法错误,

如果我从noSQL db接收到以下带有语法错误的字符串,该数据库以这种精确的格式存储该字符串,我如何将其分配给变量并在运行时“更正”语法错误。假设我无法更改它在数据库中的存储方式

由于这是一个语法错误,我甚至不能使用诸如replace或regex之类的字符串函数来删除包含电话号码的额外引号

string=“John Doe”(123)456-7890

期望的最终结果是它不会抛出语法错误并编译。
如果能得到任何帮助,我将不胜感激。谢谢。

如果作为代码的一部分执行,该字符串赋值确实会抛出一个
语法错误,但从数据库读取该字符串并不是一个错误

在这种情况下,它的工作原理就像您对字符串进行了单引号:

string='johndoe'(123)456-7890“

如果用“\”转义内部引号,或用单引号括住字符串,则该方法有效

string_param = 'John Doe "(123) 456-7890"'.replace('"', '')
如果是多行字符串,您可以使用此-

string_param = """
'John Doe "(123) 456-7890"'.replace('"', '')
""".replace('"', '')

您的意思是您正在从数据库执行python行(字符串)提交吗?就像我从db得到的结果一样。我只是任意地将它分配给变量字符串进行测试。我必须对字符串执行正则表达式,但如果它在我到达之前抛出语法错误,我就做不到。不,它没有。请显示给出错误的完整代码。当您从数据库中获取某些内容时,这肯定不是
variable=“some string”
,而是更像
variable=getDataFromDB()
。问题是数据库返回的是:John Doe“(123)456-7890”,而我不能使用单引号或str()来处理它没关系。当包含在字符串中时,只有在代码中以这种方式声明时,该字符序列才不是语法错误。这也是Python和其他语言为您提供几种不同的引用方式的原因之一,这样您就可以在不触发语法错误的情况下表示包含引号的困难情况。