如何解析一个字符串的多个json没有分隔符在python?



给定一个单行字符串,包含多个任意嵌套的json文件,没有分隔符,例如:

contents = r'{"payload":{"device":{"serial":213}}}{"payload":{"device":{"serial":123}}}'

如何将contents解析为dicts/json数组?我试着

df = pd.read_json(contents, lines=True)

但是只得到一个ValueError响应:

ValueError: Unexpected character found when decoding array value (2)

您可以拆分字符串,然后将每个JSON字符串解析为字典:

import json
contents = r'{"payload":{"device":{"serial":213}}}{"payload":{"device":{"serial":123}}}'
json_strings = contents.replace('}{', '}|{').split('|')
json_dicts = [json.loads(string) for string in json_strings]

输出:

[{'payload': {'device': {'serial': 213}}}, {'payload': {'device': {'serial': 123}}}]

最新更新