NameErrors после чтения словаря в файле picke - PullRequest
0 голосов
/ 26 февраля 2020

Я использую Pickle для сохранения и чтения переменных в Python3. У меня 3 файла, основной скрипт, создатель и ридер.

Основной файл:

import create_m
import read_m

def main():  
    create_m()
    read_m()

if __name__ == "__main__": 
    main()

Файл Create_m:

import pickle  

...

var_dict = {var_a = 123, var_b = "asdf"}

with open("pickle_file.pickle","wb") as f:
    pickle.dump(var_dict, f)

Файл Read_m:

p_dict = pickle.load(open("pickle_file.pickle", "rb" ))

for key,val in p_dict.items():
    exec(key + '=val')

var_a = 456

Назначение var_a = 456 вызывает исключение NameError: name 'var_a' is not defined но в переменной Locals появляется var_a. Код Visual Studio подчеркивает переменную желтым цветом и выдает ошибку: Неопределенная переменная: 'var_a' .
Как решить?

...