不明白这种语法错误

时间:2015-10-08 09:08:20

标签: python json

我正在运行一个Python程序,它一直把这个错误扔给我,我不明白。语法正是它在json文档中的编写方式:

    json.dumps('timestamp': y, {'checkpoint_size': x, 'checkpoint_length': a, 'checkpoint_pause': b}, sort_keys=True, indent=4, separators=(',', ': '))
                          ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:1)

在这种情况下(表达式)不理解语法错误的一个技巧是简单地将其分解为子表达式并从交互式解释器中获取帮助。虽然你必须自己做一些分析,但我觉得它很有用。

基本上这应该是(你需要知道你的意图)函数调用。 python中的函数调用是several forms之一,但在这种情况下,我们可以假设它是f(a, b, ..., z)形式,其中函数和所有参数都是表达式。所以我们检查子表达式:

>>> json.dumps
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'json' is not defined

这不是错误(在解释过程中发生的另一个错误),然后是每个参数:

>>> 'timestamp': y
File "<stdin>", line 1
   'timestamp': y
              ^
SyntaxError: invalid syntax

我们有它,第一个参数不是有效的表达式,但是如果我们把它放在大括号中它就不会产生语法错误。然后,如果你进行了校正,你会发现整个表达式的语法正确。