我必须将一个json文件加载到python脚本中以完成我的部分作业。下面是加载JSON文件的代码部分:
import json
import GraphImplementation as G
from webbrowser import open
from ParseJson import parseJSONToGraph
def main():
jsonFile = open("map_data.json")
jsonData = json.load(jsonFile)
graph = G.Graph()
graph = parseJSONToGraph(graph, jsonData)
出于某种原因,在json.load(jsonFile)行上,代码失败并出现此错误:
$ python main.py
Traceback (most recent call last):
File "main.py", line 85, in <module>
main()
File "main.py", line 13, in main
jsonData = json.load(jsonFile)
File "/usr/lib/python2.7/json/__init__.py", line 286, in load
return loads(fp.read(),
AttributeError: 'bool' object has no attribute 'read'
有谁知道为什么会这样?在交互式python模式中,我能够毫无问题地运行load()调用,我不确定为什么它在执行我的脚本时不起作用。
答案 0 :(得分:3)
webbrowser.open不会从网址加载文件;相反,它打开一个带有该页面的Web浏览器,并返回True
(一个bool
值),传递给json.load
会导致抛出异常。
如果您要打开一个文件,只需删除from webbrowser import open
行。