将String(Json Array)转换为List

时间:2014-03-14 13:53:53

标签: python json

我正在尝试从文件中读取Json,而不是转换为list.But我在代码的开头,Json.load()收到错误。我弄清楚了。 感谢。

import json

with open("1.txt") as contactFile:
    data=json.load(contactFile.read())

的1.txt:

[{"no":"0500000","name":"iyte"},{"no":"06000000","name":"iyte2"}]

错误:

  File "/usr/lib/python2.7/json/__init__.py", line 286, in load
    return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'

2 个答案:

答案 0 :(得分:5)

json.load()适用于文件对象,而不是字符串。使用

with open("1.txt") as contactFile:
    data = json.load(contactFile)

如果确实需要解析JSON 字符串,请使用json.loads()。所以以下内容也可以起作用(但在这种情况下当然不是正确的方法):

with open("1.txt") as contactFile:
    data = json.loads(contactFile.read())

答案 1 :(得分:4)

json.load接受像object这样的文件作为第一个参数。所以,应该是

data = json.load(contactFile)
# [{u'name':u'iyte', u'no': u'0500000'}, {u'name': u'iyte2', u'no': u'06000000'}]