Python嵌套字典使用咨询:如何为内层time字段赋值当前时间戳
代码问题
- 变量名冲突:你先将当前时间存入
time变量,后续循环for time in people.items()直接覆盖了该变量,原存储的时间值丢失。 - 遍历逻辑错误:
people.items()返回的是(外层键, 内层子字典)的元组,你直接将元组赋值给time变量,没有进入内层子字典查询time键的逻辑。 - 缺少字段赋值逻辑:全程没有修改
people字典内层time字段值的代码,所以打印时time永远是空字符串。 - 判断逻辑无效:
if time in people.items()的判断永远为真,因为循环的变量本身就来自people.items(),没有实际判断内层是否存在time键的作用。
修正后代码
import datetime people = {1: {'time': '', 'age': '27', 'sex': 'Male'}, 2: {'time': '', 'age': '22', 'sex': 'Female'}} # 生成ISO格式的当前时间戳,和你期望的输出格式匹配 current_time = datetime.datetime.now().isoformat() all_has_time = True # 遍历所有内层子字典 for key, sub_dict in people.items(): # 判断子字典是否存在time键 if 'time' in sub_dict: sub_dict['time'] = current_time else: all_has_time = False if all_has_time: print(people, "true") else: print(people, "false")
运行输出示例
{1: {'time': '2024-05-20T15:42:18.672341', 'age': '27', 'sex': 'Male'}, 2: {'time': '2024-05-20T15:42:18.672341', 'age': '22', 'sex': 'Female'}} true
内容的提问来源于stack exchange,提问作者damini chopra
相关产品推荐
相关产品推荐

