Python 加载包含JSON对象列表的字符串

Python 加载包含JSON对象列表的字符串,python,json,Python,Json,我有一个包含JSON对象列表的字符串。如何访问每个JSON obj?json.loads()不起作用,因为该字符串是对象列表,并且格式不正确 以下是我拥有的字符串的格式: myString = '[{"name": "John", "ID": "1"}, {"name": "Jane", "ID": "2"}]' 更新: 当我试图读取输入文件时,该文件中的某一行似乎产生了以下错误(我已隔离该行:): 对于内嵌中的行: 回溯(最近一次呼叫最后一次): 文件“./filterBios.py”,第2

我有一个包含JSON对象列表的字符串。如何访问每个JSON obj?json.loads()不起作用,因为该字符串是对象列表,并且格式不正确

以下是我拥有的字符串的格式:

myString = '[{"name": "John", "ID": "1"}, {"name": "Jane", "ID": "2"}]'
更新:

当我试图读取输入文件时,该文件中的某一行似乎产生了以下错误(我已隔离该行:):

对于内嵌中的行:
回溯(最近一次呼叫最后一次):
文件“./filterBios.py”,第29行,在
line=json.loads(line);
文件“/N/soft/rhel6/python/2.7.3/lib/python2.7/json/_init__.py”,第326行,加载
返回\u默认\u解码器。解码
文件“/N/soft/rhel6/python/2.7.3/lib/python2.7/json/decoder.py”,第366行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“/N/soft/rhel6/python/2.7.3/lib/python2.7/json/decoder.py”,第382行,原始解码
obj,end=self.scan_一次(s,idx)
ValueError:从第1行第84647列(字符84647)开始的未终止字符串
我无法找出问题的原因。

json.loads()
似乎可以很好地处理您提供的字符串。JSON对象的
列表
是从字符串创建的,可以通过索引轻松访问该字符串

In []: a = json.loads(myString)

In []: a
Out[]: [{'ID': '1', 'name': 'John'}, {'ID': '2', 'name': 'Jane'}]

In []: type(a)
Out[]: list

In []: len(a)
Out[]: 2

In []: a[0]
Out[]: {'ID': '1', 'name': 'John'}

In []: type(a[0])
Out[]: dict

我知道了!输入文本文件有一个NEL字符,结果是: codec.open() 我没办法。改用: io.open()
“ValueError:Unterminated string”错误将消失

在该字符串上调用json.loads时,会发生什么情况?这似乎是一个完全有效的json字符串;一组对象就可以了。请给出一个实际重现问题的字符串。您的字符串有效,并且我可以毫无问题地使用
json.loads()
json.loads(myString)
创建您需要的json对象列表。您还可以为它们编制索引。@AG100这是一个完全独立的问题。您可以使用上下文管理器读取文件并迭代行。只要可以将
myString
推断为字符串类型的对象,此方法就可以工作。
In []: a = json.loads(myString)

In []: a
Out[]: [{'ID': '1', 'name': 'John'}, {'ID': '2', 'name': 'Jane'}]

In []: type(a)
Out[]: list

In []: len(a)
Out[]: 2

In []: a[0]
Out[]: {'ID': '1', 'name': 'John'}

In []: type(a[0])
Out[]: dict