我正在从一个数据库加载一些python代码(它在动态映射值,我可以在运行时更改这些值,而无需重新部署代码)。在
在我的代码中,我这样做是为了执行数据库代码:
if lMapping:
print lMapping
exec lMapping
lValue = mapping(lValue, lCsvRow)
下面是lMapping的价值:
^{pr2}$每当我这样做时,exec行上都会出现语法错误,我不明白为什么:
(<type 'exceptions.SyntaxError'>:invalid syntax (<string>, line 1)
如果我先将数据库中的代码写入一个文件,它就起作用了:
print lMapping
lFile = open('/mapping.py','w')
lFile.write(lMapping)
lFile.close()
lReadFile = open('/mapping.py')
exec lReadFile
lValue = mapping(lValue, lCsvRow)
您是否使用BLOB或其他二进制类型列来存储代码?否则,数据库可能会更改行尾,exec将以
SyntaxError
分隔:更新:在Windows上以文本模式写入文件会将行尾更改为平台本机行尾。另一种标准化方法是:
^{pr2}$相关问题 更多 >
编程相关推荐