【发布时间】:2015-10-04 06:42:11
【问题描述】:
由于 Python 2 API 似乎搞砸了——从文件系统函数中,我有时会得到 unicode 字符串,有时是标准字符串——我现在正在尝试从 Python 2 过渡到 Python 3。但是在这样做的同时我遇到了关于json 模块。
我使用 Python 3.4 运行标准 Ubuntu 系统。当我尝试使用 JSON 模块时,我收到以下错误消息:
Traceback (most recent call last):
File "./sysmon.py", line 227, in <module>
jsonCfgObj = json.load(json_file, 'utf-8', strict = False)
File "/usr/lib/python3.4/json/__init__.py", line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.4/json/__init__.py", line 331, in loads
return cls(**kw).decode(s)
TypeError: 'str' object is not callable
乍一看,这似乎是 Python 3 的 JSON 模块中的一个错误。我简直不敢相信,因为我没有做任何不寻常的事情:我只是阅读了一个非常非常简单的 JSON 配置文件.
您对如何处理此错误有任何想法吗?
【问题讨论】:
-
你的代码是什么样的?那会很有帮助
-
查看堆栈跟踪:"jsonCfgObj = json.load(json_file, 'utf-8', strict = False)" 如果我删除 'utf-8' 一切正常,只要我可以看到。但是后来我在回溯模块的原始代码中得到了一些其他错误。我对其他编程语言有很多经验,所以对我来说,在原始模块代码中没有出现常规异常而是出现错误似乎是一种非常奇怪的行为。这是python3的典型吗?在python2中我从来没有遇到过这样的事情。但那是完全不同的东西。
标签: python json python-3.x