无法在python中加载JSON文件,不知道为什么?

时间:2015-03-11 22:45:05

标签: python json

我必须将一个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()调用,我不确定为什么它在执行我的脚本时不起作用。

1 个答案:

答案 0 :(得分:3)

webbrowser.open不会从网址加载文件;相反,它打开一个带有该页面的Web浏览器,并返回True(一个bool值),传递给json.load会导致抛出异常。

如果您要打开一个文件,只需删除from webbrowser import open行。