如何在Python中为字典中的值分配变量?

如何在Python中为字典中的值分配变量?,python,csv,Python,Csv,我正在为一个班级项目使用csv。它有三列,“年”、“标题字段”和“值”。为了解决一个更大的问题,我只想能够根据年份和标题字段为特定值分配一个变量 csv如下所示: 2008,Total Housing Units,41194 2008,Vacant Housing Units,4483 2008,Occupied Housing Units,36711 以下是我的代码: import csv ohu = 'Occupied Housing Units' vhu = 'Vacant Housi

我正在为一个班级项目使用csv。它有三列,“年”、“标题字段”和“值”。为了解决一个更大的问题,我只想能够根据年份和标题字段为特定值分配一个变量

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\u 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: