【发布时间】:2019-11-03 12:57:05
【问题描述】:
我想读取一个文件并将该文件的每 25 行转换为一个列表,也就是说,它应该有 4 个列表,每个列表有 25 个项目(对于一个文件的 100 行)。我无法获取此问题的代码。 输入文件看起来像这样,实际上它有 100 行:
{'PutRequest': {'Item': {'id': {'S': 'E1DBEAE3'}, 'value': {'M': {'result': {'N': u'0.0015'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': '31C6C'}, 'value': {'M': {'result': {'N': u'0.1129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': '59D40'}, 'value': {'M': {'result': {'N': u'0.00129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': 'A2A9'}, 'value': {'M': {'result': {'N': u'0.05129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
另外,我想在每个列表的第一个元素和最后一个元素中分别添加和附加一个字符串,例如:
'{"test":[' and append string like: ']}'
在 prepend 和 append 之后,它应该类似于 3 的列表大小,例如:
{"test":[{'PutRequest': {'Item': {'id': {'S': 'E1DBEAE3'}, 'value': {'M': {'result': {'N': u'0.0015'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': '31C6C'}, 'value': {'M': {'result': {'N': u'0.1129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': '59D40'}, 'value': {'M': {'result': {'N': u'0.00129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}
{'PutRequest': {'Item': {'id': {'S': 'A2A9'}, 'value': {'M': {'result': {'N': u'0.05129'}, 'lastupdatedtime': {'S': '2019-06-20'}}}}}}]}
我试过这段代码:
from itertools import islice
list =[]
with open('output_of_json.json', 'r') as infile:
lines_gen = islice(infile, 25)
for line in lines_gen:
list.append(line)
无法超过文件的前 25 行
【问题讨论】:
-
到目前为止你有什么尝试?
-
你有没有尝试过?你到底卡在哪里了?
-
from itertools import islicelist =[]with open(filename', 'r') as infile:lines_gen = islice(infile, 25)for line in lines_gen:list.append(line)无法继续前 25 行 @G.Anderson @Mureinik -
请将您的代码放在已编辑的问题中,而不是在 cmets 中。
-
@shalini,
islice(infile, 25)将遍历文件的 first 25 行。它切掉这 25 行并对其进行迭代,因此难怪您无法越过前 25 行。