我创建了一个字典dataset = dict()
,并创建了一个列列表:
colums = ["date", "day", "month", "year", "cases", "deaths", "countriesAndTerritories","countryTerritoryId", "countryTerritoryCode", "population2019", "continent", "cumulativeper1000002Weeks"]
现在我把列作为键,我想要一个csv文件作为值。 代码如下:
dataset = dict()
for h in colums:
dataset[h] = ""
print(dataset)
结果是:
{'date': '', 'day': '', 'month': '', 'year': '', 'cases': '', 'deaths': '', 'countriesAndTerritories': '', 'countryTerritoryId': '', 'countryTerritoryCode': '', 'population2019': '', 'continent': '', 'cumulativeper1000002Weeks': ''}
但是,我想将csv文件作为值放入字典中
for row in reader:
dataset[h] = row
print(dataset)
给
{'date': '', 'day': '', 'month': '', 'year': '', 'cases': '', 'deaths': '', 'countriesAndTerritories': '', 'countryTerritoryId': '', 'countryTerritoryCode': '', 'population2019': '', 'continent': '', 'cumulativeper1000002Weeks': ['25/09/2020', '25', '9', '2020', '0', '0', 'Afghanistan', 'AF', 'AFG', '38041757', 'Asia', '1.57195684']}
我想发生的是{'date': '25/09/2020', 'day': '25', 'month': '9' ...... }
注:代码为
import csv
def read_dataset() -> List[Dict[str,str]]:
with open('covid-19.csv', 'r') as file:
reader = csv.reader(file)
no_head = next(reader, None)
colums = ["date", "day", "month", "year", "cases", "deaths", "countriesAndTerritories",
"countryTerritoryId", "countryTerritoryCode", "population2019", "continent", "cumulativeper1000002Weeks"]
dataset = dict()
for h in colums:
dataset[h] = ""
for row in reader:
dataset[h] = row
return dataset
dataset = read_dataset()
print(dataset)
从您发布的代码来看,不清楚您的文件是什么样子的。 假设它只有一行,比如
你可以这样做
我建议检查Python
csv
模块中可用的DictReader。我认为它可以自动地做你需要的事情,从而为你省去很多麻烦我怀疑您的代码可能被改写为:
免责声明:我没有尝试运行上述代码
这假设您正在读取的csv文件没有标题行,或者您希望使用自定义名称重命名字段
特定于您的案例的三行程序(需要
python -m pip install requests
),生成dict列表,每个dict都是您想要的格式的一行:Try it online!
相关问题 更多 >
编程相关推荐