我正在读取带有数字字符串的文本文件,并将它们写入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)
答案 0 :(得分:0)
您通过执行以下操作将data
声明为列表:
data = []
然后,您尝试通过以下操作使用字符串为该列表编制索引:
data['imagename'] = []
这将不起作用,因为如错误所示,列表索引只能是整数
我猜测对您来说可能的答案是将data
声明为字典。
这样,您可以使用键和值系统(此处带有键"imagename"
)并将其追加到字典中的列表中。您需要更改的只是:
data = {}