我在Python(2.7)中遇到问题 - 我有一个cookiecutter项目提示输入(通过CLI),然后根据该输入生成我的项目。
我的一个字段是描述,我已经看到添加引号,即'Hello this is'我的“描述”将在我通过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
子句,所以我没有机会优雅地退出。
有什么方法可以更好地处理这个问题吗?
P.S。我知道我可以使用一些Jinja2过滤器来清理输入,但我正在寻找一种解决方案,让我可以在不改变输入的情况下处理错误。
答案 0 :(得分:1)
eval("{u'description': u'Hello this is "my" description'}")
是您的问题。
您必须在"
之间转义my
。
eval("{u'description': u'Hello this is \"my\" description'}")