我在 Python (2.7) 中有一个问题 - 我有一个 cookiecutter 项目,它会提示输入(通过 CLI),然后根据该输入生成我的项目。
我的一个字段是描述,我已经看到在其中添加引号,即“你好,这是“我的”描述”在我通过 eval 传递它时会导致语法错误:
File "/var/folders/4b/gzszrl3d5fn1q7vvv05s63vmf014cj/T/tmpnJWgqK.py", line 53
parameters = eval("{u'description': u'Hello this is "my" description'}")
SyntaxError: invalid syntax
ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully
执行此操作的代码部分是:
try:
parameters = eval("{{ cookiecutter }}")
except:
print('An error occurred!')
sys.exit(1)
我的问题是代码从不进入except
子句,所以我没有机会优雅地退出。
有什么办法可以更好地处理这个问题吗?
PS 我知道我可以使用一些 Jinja2 过滤器来清理输入,但我正在寻找一种解决方案,让我在不改变输入的情况下处理错误。