为什么这段代码:
input_file = file( os.path.join(os.path.abspath(__file__), "res/channels.json"))
j = json.loads(input_file.read())
生成此错误:
input_file = file( os.path.join(os.path.abspath(__file__), "res/channels.json"))
TypeError: 'unicode' object is not callable
我只想一劳永逸地理解这类问题。
答案 0 :(得分:0)
有三种选择可以解决您看到的错误:
os.path.abspath
绑定到unicode值os.path.join
绑定到unicode值file
绑定到unicode值在这三个中,最后一个是最有可能的。
要么不在代码中的其他地方分配file
,要么删除内置的file
全局屏蔽:
del file
您使用recommends的Python文档open()
function。我还使用json.load()
(no s
)直接加载文件内容,以及with
语句以确保文件对象自动关闭:
with open(os.path.join(os.path.abspath(__file__), "res/channels.json")) as input_file:
j = json.load(input_file)