我试图创建一个字典,我可以序列化到一个json文件。这是我第一次尝试,所以我很困惑。
我希望用户输入患者的名字、姓氏、年龄和性别,因此字典输出如下所示:
"patients": [
{
"first_name": "Jane",
"last_name": "Doe",
"age": 33,
"gender": f,
}
]
}
我希望每个用户输入都在一行中,直到循环被打破。到目前为止,我只有:
patients = {}
info = input("Enter first name, last name, age, and gender separated by space. Enter stop to stop:")
for key, value in patients.items():
print('first_name: {}, last_name: {}, age: {}, gender: {}'. format(key, value))
我如何设置我的代码,使用户可以继续输入信息,直到循环被打破?我怎样才能使字典输出如上所示,以便每个输入都是分开的,并相应地显示为字典键的值?我真的不知道从哪里开始,任何帮助都很感激!
3条答案
按热度按时间aamkag611#
这个程序应该做你需要的。添加了注解,以了解每行的详细功能。
这段代码期望每一个输入行都是精确的单词
stop
,或者它有四个逗号分隔的值,格式为精确的string, string, number, string
。如果你想处理不同的输入,需要在代码中添加如下的输入验证。data
的长度是否为4patients.json的内容如下所示
km0tfn4u2#
首先,看起来您需要一个包含一组字典的列表,因此我将patients变量更新为一个列表。
第二,可以使用while循环继续提示用户输入。对于每个条目,您可以将新字典追加到列表中。
最后,要在一行上打印每个字典,可以循环遍历患者列表并输出每个字典项。
输出如下所示:
inkz8wg93#
将代码放入循环中,并使用 boolean 变量。
下面是格式化后的输出。
与JSON略有不同,我知道。
您只需将输出格式化为 JSON。
这可以像 string-format 一样简单,或者使用 JSON 模块。