在一個檔案中,儲存了多個 json objects,用一般的 json.loads 會出現 error,需要找方式自行 parse 為 object

Sample code

`
from json import JSONDecoder, JSONDecodeError
import re

NOT_WHITESPACE = re.compile(r’[^\s]’)

def decode_stacked(document, pos=0, decoder=JSONDecoder()):
while True:
match = NOT_WHITESPACE.search(document, pos)
if not match:
return
pos = match.start()

try:
    obj, pos = decoder.raw_decode(document, pos)
except JSONDecodeError:
    # do something sensible if there's some error
    raise
yield obj

s = “””

{“a”: 1}
[
1
,
2
]

“””

for obj in decode_stacked(s):
print(obj)
`

Reference

Comments