我正在尝试将文本文档中的行拆分为数组,并将属性附加到数组中的每个值,然后再将它们转换为json以显示在文本文件中。
然而,无论我如何调整我的代码,我仍然会遇到错误“ IndexError:列出了对于fields1 [1]行的rang e“的索引。
with open(fileName,'r') as file:
for line in file:
if line.startswith('-') and 'section1' in line:
for li in file:
fields1 = li.split(',')
testarr.append({
"section1a": fields1[0],
"section1b": fields1[1],
"section1c": fields1[2]
})
with open(test_dir,'a+') as test_file:
json.dump(testarr, test_file)
知道问题出在哪里?
答案 0 :(得分:2)
当你li.split(',')
时,它没有分成3部分。也许它没有足够的,
来分裂。例如.. li = 'asdf,ffd'
这会在fields1 [2]上产生错误,因为它只会分成两部分['asdf', 'ffd']
。
答案 1 :(得分:2)
你有一些奇怪的缩进,没有内容我不知道你的错误会在哪里,但这应该有助于你找到它:
testarr = []
with open(fileName,'r') as file:
for line in file:
if line.startswith('-') and 'section1' in line:
fields1 = li.split(',')
if len(fields1) >= 3:
testarr.append(
{
"section1a": fields1[0],
"section1b": fields1[1],
"section1c": fields1[2]
}
)
else:
print("This line has an error in it: {}".format(line))
with open(test_dir,'a+') as test_file:
json.dump(testarr, test_file)