2015-10-08 2 views
-1

Я запускаю программу Python, и она продолжает бросать мне эту ошибку, которую я не понимаю. Синтаксис точно, как написано в json документации:Не понимаю эту ошибку синтаксиса

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

Отсутствует другая пара '{}' вокруг вашего dict и имя ключа, где точка ^. – deceze

+1

Или, скорее всего, поставьте '' 'перед' 'timestamp'' вместо' 'checkpoint_size''. – mkrieger1

+0

@deceze: '^' на самом деле указывает на ':', а не на пространство перед '{' (можно увидеть, вставив пример в сеанс Python с импортированным 'json'). – mkrieger1

ответ

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 

Там мы имеем его, первые аргумент не является допустимым выражением, но если мы поместим его в фигурные скобки, он не будет генерировать синтаксическую ошибку. Затем, если вы сделаете эту коррекцию, вы увидите, что все выражение имеет правильный синтаксис.

Смежные вопросы