Skip to main content
 首页 » 编程设计

python之修复格式错误的字符串

2025年05月04日20daizhj

我有来自 TCP 线路的数据作为字典列表。但有时我会同时收到两个数据包。他们看起来像

[{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}][{"property1":"value1", "property2":"value2"}][{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}] 

我想把它转换成这样:-

[{"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}, 
 {"property1":"value1", "property2":"value2"}, {"property1":"value1", "property2":"value2"}] 

请您参考如下方法:

您可以分两步完成此操作:

  1. 将][替换为,,因为那些连续的方括号代表独立的数据包,连接它们最简单的方法是用逗号替换
  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'}] 

这里的假设是您接收这些“数据包”作为字符串。