Python中让用户输入字典可以通过input()
函数结合eval()
或json.loads()
实现,关键方法包括直接转换字符串、逐项输入键值对或使用安全解析方式。以下是具体实现方案:
-
eval()
快速转换
通过input()
获取字符串后,用eval()
转换为字典:pythonCopy Code
user_dict = eval(input("请输入字典(如{'name': 'Alice', 'age': 25}):"))
注意:
eval()
存在安全风险,仅适用于可信输入。 -
逐项输入键值对
通过循环让用户分步输入键和值,动态构建字典:pythonCopy Code
user_dict = {} while True: key = input("输入键(或按回车结束):") if not key: break value = input(f"输入'{key}'的值:") user_dict[key] = value
-
json.loads()
安全解析
用json
模块解析标准JSON格式字符串,避免eval()
风险:pythonCopy Code
import json user_dict = json.loads(input("输入JSON字典:"))
要求输入必须为
{"key": "value"}
格式。 -
ast.literal_eval()
替代方案
安全解析仅支持字面量的字典字符串:pythonCopy Code
import ast user_dict = ast.literal_eval(input("输入字典:"))
总结:优先选择json.loads()
或ast.literal_eval()
确保安全性,若需交互式输入可循环构建键值对,避免直接使用eval()
处理外部输入。