Python открыть словарь - PullRequest
0 голосов
/ 05 мая 2020

Вопрос: Как мне открыть файл и превратить его в свой словарь при запуске программы?

Итак, я создал тестовый словарь, сохранил его как .txt и .dat. Ниже я ввел словарь вручную, но вместо этого я хочу, чтобы программа открывала файл при запуске, преобразовывала его в словарь, а затем переходила к функциям.

(Общая цель программы - ввести ключ (productCode) для получения номера продукта, и все это работает), но я хочу, чтобы это делалось с файлом, а не с введенными вручную данными .

Как всегда, приветствуются рекомендации!

file = open("test.dat", "r")

FILENAME = "test.dat"


# ------ Global Variables -------
d = {'ABCD': '0123', 'HJKL': '0987'}

user_cont = True

# ------- Functions -------

print("Product number finder.")
def get_productNum2():
    global d
    user_cont = True
    while user_cont:

        productCode = input("Enter an existing product code: ")
        if productCode in d:
            productNum = d[productCode]
            print("Product #: " + productNum)
        else:
            print("Error finding product number; product code does not exist.")

        user_cont = user_continue()

def user_continue():
    global user_cont
    prompt_user = input("Do you wish to continue? Enter y/n: ")
    if prompt_user == "y":
        user_cont = True
    elif prompt_user == "n":
        user_cont = False
    return user_cont

# ------- Start Execution -------
get_productNum2()

1 Ответ

0 голосов
/ 05 мая 2020

Вы можете (и должны) записать словарь в файл в формате JSON. Мало того, что он сохраняется в удобочитаемом виде, формат JSON также означает, что словарь может быть даже загружен во многие другие языки программирования и программы, если это необходимо!

Вот пример использования стандартного пакета библиотеки json:

import json

dict = {'ABCD': '0123', 'HJKL': '0987'}

dict_json = json.dumps(dict) #this line turns the dictionary into a JSON string
with open("my_dictionary.json", "w") as outfile:
    outfile.write(dict_json) 

Учитывая словарь в формате JSON, мы можем загрузить его следующим образом:

with open("my_dictionary.json", "r") as infile: 
    dict = json.load(infile) 

Теперь вы можете получить доступ к dict, который вы загрузили из файла как если бы это был оригинальный словарь:

>>> print(dict["ABCD"])
0123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...