错误:列表索引必须为整数,但不能为字符串

时间:2019-12-02 14:39:13

标签: python-3.x

我正在读取带有数字字符串的文本文件,并将它们写入JSON文件。我必须根据文本文件的索引值来编写。以下代码有更多错误,我无法弄清楚。

import json
filepath = '0000002_00448_d_0000015.txt'
line = []
data = []
with open(filepath) as fp:
   line = fp.readline()
   print(line)
   line = line.split(',')
   print(line[0])
   print(line[1])
   print(line[2])
   print(line[3])
   print(line[4])
   print(line[5])
   print(line[6])
   print(line[7])
data['imagename']= []
data['imagename'].append({
   'bbox_left': line[0],
   'bbox_top': line[1],
   'bbox_width': line[2],
   'bbox_height': line[3],
   'score': line[4],
   'object_category': line[5],
   'truncation': line[6],
   'occlusion': line[7]

})


with open('data.json', 'w') as outfile:
   json.dump(data, outfile)

1 个答案:

答案 0 :(得分:0)

您通过执行以下操作将data声明为列表:

data = []

然后,您尝试通过以下操作使用字符串为该列表编制索引:

data['imagename'] = []
  

这将不起作用,因为如错误所示,列表索引只能是整数


我猜测对您来说可能的答案是将data声明为字典。

这样,您可以使用键和值系统(此处带有键"imagename")并将其追加到字典中的列表中。您需要更改的只是:

data = {}