csv字典嵌套字典嵌套数组按行赋值
时间: 2023-09-30 21:06:24 浏览: 169
假设你有一个 CSV 文件,其中每一行都包含一个嵌套字典和嵌套数组的数据结构,你可以使用 Python 中的 csv 模块来按行读取 CSV 文件,并将每一行数据转换为对应的 Python 数据结构。然后,你可以对每个字典和数组进行操作,按需进行赋值。
以下是一个示例代码,其中假设 CSV 文件的第一行为列名,第二行及以后为数据:
```python
import csv
with open('data.csv', 'r', newline='') as f:
reader = csv.DictReader(f)
for row in reader:
# 将字符串转换为字典和数组
dict_data = eval(row['dict_column'])
list_data = eval(row['list_column'])
# 操作字典和数组
dict_data['new_key'] = 'new_value'
list_data.append('new_element')
# 将修改后的数据重新赋值给 CSV 文件对应的列
row['dict_column'] = str(dict_data)
row['list_column'] = str(list_data)
# 将修改后的行数据写入新的 CSV 文件
with open('new_data.csv', 'a', newline='') as f_new:
writer = csv.DictWriter(f_new, fieldnames=reader.fieldnames)
if f_new.tell() == 0:
writer.writeheader() # 写入列名
writer.writerow(row)
```
在这个示例代码中,我们首先使用 csv 模块中的 DictReader 类来按行读取 CSV 文件,并将每一行数据转换为一个字典。然后,我们使用 eval 函数将 CSV 文件中的字符串转换为对应的 Python 数据结构。接着,我们对字典和数组进行操作,将修改后的数据重新赋值给 CSV 文件对应的列。最后,我们使用 csv 模块中的 DictWriter 类将修改后的行数据写入一个新的 CSV 文件。
阅读全文