Я не могу получить правильное значение из текстового файла в список словаря.Я вызываю необработанный вывод текстового файла, читаю его построчно, убираю пробелы и разбираю в словарь.
Пожалуйста, найдите текстовый файл ниже, который состоит из идентификатора продукта и названия продукта.Пожалуйста, обратите внимание, что некоторые данные в источнике файла перевернуты. Я имею в виду, что идентификатор продукта стоит первым перед названием продукта (не в последовательности) ... Пожалуйста, обратитесь к образцу данных ниже
Product id: sq112
Prodname: ment-bar1
Product id: sq001
Prodname: jumw-cd12
Product id: mcc-hg921
Prodname: emq-vx02
Product id: mmc112
Prodname: ment-bar2
Product id: cx022
Prodname: mxx-21ed
Product id: vcb113
Prodname: emq-vx05
Prodname: trc-vc01
Product id: emx-21ee
Этот сценарий используется для получения идентификатора и имени
file = open("prd1.txt")
data = file.readlines()
dict = {"ProdList":[]}
temp_dict ={}
for line in data:
line = line.replace('\n', '').strip()
line = line.split(':')
line = list(filter(None,line))
temp_dict["ID"] = line[0]
temp_dict["Name"] = line[1]
dict["ProdList"].append(temp_dict)
temp_dict = {}
print(dict)
Вывод команды dict, сгенерированный как показано ниже
{'ProdList': [{'ID': 'Product id', 'Name': ' sq112'}, {'ID': 'Prodname',
'Name': ' ment-bar1'}, {'ID': 'Product id', 'Name': ' sq001'}, {'ID':
'Prodname', 'Name': ' jumw-cd12'}, {'ID': 'Product id', 'Name': ' mcc-
hg921'}, {'ID': 'Prodname', 'Name': ' emq-vx02'}, {'ID': 'Product id',
'Name': ' mmc112'}, {'ID': 'Prodname', 'Name': ' ment-bar2'}, {'ID':
'Product id', 'Name': ' cx022'}, {'ID': 'Prodname', 'Name': ' mxx-21ed'},
{'ID': 'Product id', 'Name': ' vcb113'}, {'ID': 'Prodname', 'Name': ' emq-
vx05'}]}
Ожидаемый вывод следующим образом
{'ProdList':[{'ID':'sq112','Name':' ment-bar1'},{'ID':'sq001','Name':'
jumw-cd12'},{'ID':'mcc-hg921','Name':' emq-vx02'}]}
Я попробовал, как предложено ниже
for i in range(0,len(data),2):
line = data[i].split(':')
nxt_line = data[i+1].split(':')
if 'id' in data[0]:
dict['ProdList'].append({'ID':line[1], 'Name': nxt_line[1]})
else:
dict['ProdList'].append({'ID':nxt_line[1], 'Name': line[1]})
Я получаю вывод ниже
{'ProdList':[{'ID':' sq112\n','Name':' ment-bar1\n'},{'ID':'
sq001\n','Name':' jumw-cd12\n'},{'ID':' mcc-hg921\n','Name':' emq-vx02\n'},
{'ID':' mmc112\n','Name':' ment-bar2\n'},{'ID':' cx022\n','Name':' mxx-
21ed\n'},{'ID':' vcb113\n','Name':' emq-vx05\n'},{'ID':' trc-
vc01\n','Name':' emx-21ee \n'}]}
Последний идентификатор и название продукта вверх ногами ... это должны быть ID: emx-21ee и Имя: trc-vc01