0

我在 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 过滤器来清理输入,但我正在寻找一种解决方案,让我在不改变输入的情况下处理错误。

4

1 回答 1

1

eval("{u'description': u'Hello this is "my" description'}")是你的问题。

你必须逃脱"之间my

eval("{u'description': u'Hello this is \"my\" description'}")

于 2017-07-20T15:21:09.833 回答