【发布时间】:2020-02-13 12:57:10
【问题描述】:
我有一个文本文件,其中包含非逗号分隔的字典,格式如下:
{} {} {}
例子
{
'header': 'sdf',
'meta': {
'searchId': {
'searchId': 1234
},
'timestamp': 1234,
'attachments': [
'ABC'
],
'xmlData': {
'release': None,
'version': None,
}
}
{
'header': 'sdf',
'timestamp': 14,
'attachments': [
'ABC'
],
'xmlData': {
'release': None,
'version': None,
}
}
这些字典可能包含嵌套字典。我想阅读此文件并将其转换为字典列表,即格式为 [{},{},{}] 示例
[{
'header': 'sdf',
'meta': {
'searchId': {
'searchId': 1234
},
'timestamp': 1234,
'attachments': [
'ABC'
],
'xmlData': {
'release': None,
'version': None,
}
},
{
'header': 'sdf',
'timestamp': 14,
'attachments': [
'ABC'
],
'xmlData': {
'release': None,
'version': None,
}
}]
有人可以建议一种方法吗?
谢谢
【问题讨论】:
-
是什么创建了这些数据?为什么不使用现有的序列化格式?
-
基本上我得到了这种格式的数据。谁创建的并不重要,因为它不会被序列化
-
没有真正的标准方法来反序列化这种格式的数据。如果您想以稳健的方式执行此操作,则需要编写自己的解析器。
-
不,看,这就是问题所在。它是序列化的(文件中没有“字典”,它是只有文本),有人做出了将字典的字符串表示形式转储到文件中的错误决定序列化就足够了。现在,您必须手动解析它。这可以通过使用适当的、受良好支持的序列化格式来避免(JSON 在这里很明显)。 最好的解决方案是修复源
-
所有字符串都不会包含空格字符吗?
标签: python python-3.x list file dictionary