本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:幽默盒子,一个专注于搞笑,分享快乐的公众号

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用 Python 从文件创建字典?

发布于2021-06-04 04:28     阅读(330)     评论(0)     点赞(30)     收藏(5)



问题:如何在运行程序时打开文件并将其转换为我的字典?

所以我创建了一个测试字典,将它保存为 .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()

解决方案


您可以(并且应该)以 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





所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/983425/c08000d7f21c8bc695ad/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)