gpt4 book ai didi

python - 如何在 Python 中将变量分配给字典中的值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:40 25 4
gpt4 key购买 nike

我正在为类项目使用 csv。它有 3 列:“年份”、“标题字段”和“值”。在尝试解决更大的问题时,我只想能够根据年份和标题字段将变量分配给特定值。

csv 看起来像这样:

2008,Total Housing Units,41194
2008,Vacant Housing Units,4483
2008,Occupied Housing Units,36711

这是我的代码:

import csv

ohu = 'Occupied Housing Units'
vhu = 'Vacant Housing Units'
thu = 'Total Housing Units'
filename = 'denton_housing.csv'

# creates dictionary
with open(filename, 'r', encoding='utf8', newline='') as f:
housing_stats = []
for row in csv.DictReader(f, delimiter=','):
year = int(row['year'])
field_name = row['title_field']
value = int(row['value'])
denton_dict = {'year': year, 'title_field': field_name, 'value': value}
housing_stats.append(denton_dict)

if row['year'] == 2008 and row['title_field'] == vhu:
vac_unit = int(row['value'])
print(vac_unit)

我使用 print 语句运行该程序,底部没有 if 语句,它为我提供了整个 csv 数据作为字典列表,这就是我想要的。但是,当我将其更改为现在的样子时,它只是运行并且不打印任何内容。

例如,有一行将与年份和特定标题字段匹配。我正在尝试将该行中的值分配给 vac_unit

最佳答案

我相信您对相关代码的缩进是错误的。如果有请更新。

for row in csv.DictReader(f, delimiter=','):
year = int(row['year'])
field_name = row['title_field']
value = int(row['value'])
denton_dict = {'year': year, 'title_field': field_name, 'value': value}
housing_stats.append(denton_dict)

if row['year'] == 2008 and row['title_field'] == vhu:
vac_unit = int(row['value'])
print(vac_unit)

您正在比较一个整数和一个字符串。

if row['year'] == 2008 and row['title_field'] == vhu:

应该是

if row['year'] == '2008' and row['title_field'] == vhu:

if int(row['year']) == 2008 and row['title_field'] == vhu:

关于python - 如何在 Python 中将变量分配给字典中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49144264/

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