因为CSV文件中的表头和我定义的对象字段并不能完全一一对应
时间: 2024-03-28 13:42:00 浏览: 18
如果CSV文件中的表头和你定义的对象字段不能完全一一对应,你可以考虑使用一个字典来映射表头和对象字段之间的关系。具体来说,你可以将表头中的每一列作为字典的键,将对应对象字段的名称作为字典的值。然后在读取CSV文件时,通过表头中的列名来获取对应的对象字段名,这样就可以将CSV文件中的数据正确地映射到对象的属性上了。
以下是一个示例代码,可以帮助你更好地理解这个思路:
``` python
import csv
# 字段映射关系
field_map = {
'csv_column_1': 'object_field_1',
'csv_column_2': 'object_field_2',
'csv_column_3': 'object_field_3',
}
# 读取CSV文件并将数据存储到对象中
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
obj = MyObject()
for csv_field, obj_field in field_map.items():
setattr(obj, obj_field, row[csv_field])
# 对象处理逻辑
...
```
在上面的示例代码中,`field_map` 字典定义了表头中每一列和对象字段之间的映射关系。在读取CSV文件时,我们使用 `csv.DictReader` 对象来读取文件,并将每一行数据存储为一个字典。然后,我们遍历 `field_map` 字典,使用 `setattr` 函数将对应的属性值设置到对象上。最后,我们可以对对象进行处理,完成具体的业务逻辑。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)