修复格式错误的字符串?

Piy*_*kar 1 python string

我有来自TCP线的数据作为字典列表.但有时我会一次收到两个数据包.他们看着像是

[{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}][{"property1":"value1", "property2":"value2"}][{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}]
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这个: -

[{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"},
 {"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}]
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 6

您可以通过两个步骤完成此操作:

  1. 替换][为a,,因为那些连续的方括号表示单独的数据包,加入它们的最简单方法是用逗号替换
  2. 将字符串转换为带有ast.literal_eval"安全" 的字典eval.

import ast
ast.literal_eval(string.replace('][', ','))

[{'property1': 'value1', 'property2': 'value2'},
 {'property1': 'value1', 'property2': 'value2'},
 {'property1': 'value1', 'property2': 'value2'},
 {'property1': 'value1', 'property2': 'value2'},
 {'property1': 'value1', 'property2': 'value2'}]
Run Code Online (Sandbox Code Playgroud)

这里的假设是你将这些"数据包"作为字符串接收.