Вот здесь:
stackoverflow.com/questions/8028708/dynamically-set-local-variable-in-python указывается, что locals менять нельзя. Кроме некоторых извращённых случаев, которые работают далеко не всегда.
Как я понимаю, у Вас есть словарь, притом довольно небольшой, и Вы хотите распаковать его в локальные переменные. Но зачем? Почему бы не обращаться просто к словарю?
mydict['myname']
не намного длинней, чем
myname
.
В принципе, можно использовать
OrderedDict
для того, чтоб гарантировать порядок значений, и зная этот порядок, написать что-то вроде
myvar1, myvar2 = mydict.values()
Но нужно ли. Потом разбираться в случае появления багов, откуда и что взялось. Explicit is better than implicit.