Я довольно новыми для Python и то, что я пытаюсь сделать, это следующее:добавление в список в Python выдает ошибку
- Читать файл
- Добавление элементов словаря для каждой строки
- Если ключ уже существует, затем введите значения для ключа в список и добавьте новое значение в список.
- Обновление словаря с новым списком значений
Вот мой код:
jobChangeMap=dict() # Maps the changed job name. Format will be jobset,originaljob,jobNumber:jobset,changedjob,jobnumber
jobValues = []
if(not jobsetName in jobsetJobMap.keys()):
logger.debug("{0} not found as a key. Adding key and value pair".format(jobsetName))
jobsetJobMap.update({jobsetName:jobName+","+jobNumber})
logger.debug(jobsetJobMap)
else:
jobValues = []
jobValues[:]=[]
logger.debug("{0} already found as a key. Getting list of values for key".format(jobsetName))
jobValues=jobsetJobMap[jobsetName]
logger.debug("Number of values for {0} is {1}".format(jobsetName,jobValues.count))
logger.debug(jobsetJobMap)
if(not jobName in jobValues):
myJobName=jobName+","+jobNumber
logger.debug("Size before adding: {0}".format(len(jobValues)))
jobValues.append(myJobName)
Это линия, которая выдает следующее сообщение об ошибке:
File "D:\Git-Python\MountSophie-Conversion\jmoConversion\JMOExtract.py", line 163, in createJobMap
jobValues.append(myJobName)
AttributeError: 'str' object has no attribute 'append'
Почему Python жалуясь, что jobValues является объектом str, хотя я явно определил его как список типов?
Впоследствии вы имеете 'jobValues = jobsetJobMap [jobsetName]', поэтому ранее 'jobValues = [] 'не имеет значения. – khelwood
Вы изменили тип 'jobValues' на' str' через этот оператор - 'jobValues = jobsetJobMap [jobsetName]'. –
@khelwood - Мне нужно получить значения в списке. Я думал, что это код, чтобы получить список значений для ключа. Разве это не так? –