首页 > 解决方案 > 将txt文件最后N行的数据提取到python中的数组中

问题描述

我正在尝试从txt文件的最后N行中提取不同类型的数据,包含在多种类型的空格中,并放入python中的数组中

我尝试使用 split() 函数来拆分数据,但无法获得正确的拆分项,因为在我想要实际分离和存储的数据之间存在多种不同类型的空白字符

这是我拥有的文本文件的示例:

{"2019-03-29": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-03-29": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-03-29": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-03-29": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-03-29": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-04-01": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-04-01": [["A", "B", "C"], [0, 4, 3, 0, 0, 2, 0], [0, 1, 1, 0, 0, 0, 1]]}, 

{"2019-04-01": [["A", "B", "C"], [0, 5, 3, 0, 0, 2, 0], [0, 0, 1, 0, 0, 0, 1]]}, 

{"2019-04-01": [["A", "B", "C"], [0, 5, 3, 0, 0, 2, 0], [0, 0, 1, 0, 0, 0, 1]]}, 

{"2019-04-01": [["A", "B", "C"], [0, 5, 3, 0, 0, 2, 0], [0, 0, 1, 0, 0, 0, 1]]},

例如,我希望能够从最后6 行中提取数据,并获得以下结果:

(尺寸为 6x1 的 arr1)

arr1 = [ [2019-03-29] , [2019-04-01] , [2019-04-01], [2019-04-01] , [2019-04-01] , [2019-04-01] ] 

(尺寸为 6x7 的 arr2)

arr2 = [[0, 4, 3, 0, 0, 2, 0], [0, 4, 3, 0, 0, 2, 0], [0, 4, 3, 0, 0, 2, 0], [0, 5, 3, 0, 0, 2, 0], [0, 5, 3, 0, 0, 2, 0], [0, 5, 3, 0, 0, 2, 0]]

标签: pythonarraysfile-handling

解决方案


您可以将每一行读取为一个 Json 对象,该对象将映射到带有对象列表的字典列表。

你有一些例子在这里

但基本上,阅读每一行并调用json.loads(line),你会得到每一行的字典。

从那里你可以像往常一样使用 Python 操作并获得你需要的任何东西。


推荐阅读