gpt4 book ai didi

python - 将键复制到新字典 (Python)

转载 作者:太空狗 更新时间:2023-10-29 17:27:34 26 4
gpt4 key购买 nike

我正在使用 DictReader() 读取一个 csv 文件。该函数返回一个字典,其中标题项是键,单元格是值。很酷。

但我正在尝试解释数据可能与我预期不同的行。在那种情况下(我正在捕获 ValueError 异常),我希望将“可疑”的行放入单独的字典中,以进行手动处理。

我的问题是:由于我的第一本字典(DictReader 返回的对象)的所有键都已正确设置,我如何将仅键复制到我的第二本字典中,即我只想成为一个可疑行的字典,进行手动处理?

我一直在玩弄 dict.fromkeys() 等等,现在我只是一无所获。住手!

编辑:粘贴我的一些错误代码。要去隐藏我的代码的耻辱。不要评判我! ;-)

unsure_rows = dict.fromkeys(dict(csv_reader).keys(), [])
for row in csv_reader:
# if row['Start Time'] != 'None':
try:
if before_date > strptime(row['Start Time'], '%Y-%m-%d %H:%M:%S') > after_date:
continue
except ValueError:
unsure_rows += row

ValueError:字典更新序列元素 #0 的长度为 13; 2 是必需的

最佳答案

你很接近。尝试:

dict.fromkeys(my_csv_dict.keys(),[])

这将使用您从 CSV 文件中解析的相同键来初始化一个字典,并且每个键都将映射到一个空列表(我假设您将向该列表附加您的可疑行值)。


试试这个。 (这里有几个细微的变化都是必要的,比如如何在开始阅读 CSV 之前无法初始化 unsure_rows。)

unsure_rows = None
for row in csv_reader:
# if row['Start Time'] != 'None':
try:
if before_date > strptime(row['Start Time'], '%Y-%m-%d %H:%M:%S') > after_date:
continue
except ValueError:
if not unsure_rows:
# Initialize the unsure rows dictionary
unsure_rows = dict.fromkeys(csv_reader.fieldnames,[])
for key in unsure_rows:
unsure_rows[key].append(row[key])

关于python - 将键复制到新字典 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7369247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com