在进行CSV数据插入时,可以先通过代码读取CSV文件的第一行,获取到其列名,再将需要插入的数据与已有的列名进行比较,保证数据插入的准确性。具体代码示例如下:
import csv
# 读取CSV文件的列名
def get_header(filename):
with open(filename, 'r', encoding='utf-8-sig') as f:
reader = csv.reader(f)
return list(reader)[0]
# 比较两个字符串数组
def compare_arrays(array1, array2):
return sorted(array1) == sorted(array2)
# 插入数据到CSV文件中
def insert_data(filename, data):
header = get_header(filename)
if compare_arrays(header, data.keys()):
with open(filename, 'a', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=header)
writer.writerow(data)
print('数据插入成功!')
else:
print('数据格式不一致,插入失败!')
# 测试代码
insert_data('test.csv', {'Name': 'John', 'Age': 30, 'City': 'New York'})
在上面的代码中,get_header
函数用于读取CSV文件的列名,compare_arrays
函数则用于比较两个字符串数组是否一致。在insert_data
函数中,先获取CSV文件的列名,再将要插入的数据的列名与之进行比较,保证数据插入的准确性。