Python 3.6.5 缩进错误

Pythont 3.6.5 IndentationError

我刚开始用 python 写作,缩进让我很吃力。 我有这个代码:

import json

if __name__ == '__main__':
    is_json('test')

def is_json(str):
    try:
        json.loads(str)
    except ValueError, e:
        return False
    return True 

抛出:

File "so.py", line 9 except ValueError, e: ^ SyntaxError: invalid syntax

我只使用制表符。

您的代码有两个错误:

  • except部分

  • 其次是你在底部声明了is_json

如果在底部声明,可能会出现 NameError: name 'is_json' is not defined 错误。

    import json

    def is_json(str):
        try:
            json.loads(str)
        except ValueError as e:
            return False
        return True

    if __name__ == '__main__':
        is_json('test')

看看下面两点。

(1) Python3 对 try-except 语句使用不同的语法来处理异常。

Replace except ValueError, e: with except ValueError as e:.

https://docs.python.org/3/tutorial/errors.html

(2) 在 if 语句之前定义 你的函数。函数定义应该在使用点(调用)之前可用。

import json

def is_json(str):
    try:
        json.loads(str)
    except ValueError as e:
        return False
    return True 

if __name__ == '__main__':
    print(is_json('test')); # False

谢谢。