面试题答案
一键面试以下是使用Python实现该需求的代码示例:
import csv
import requests
import json
# 配置CouchDB信息
couchdb_url = 'http://localhost:5984' # 修改为你的CouchDB地址
database_name = 'your_database' # 修改为指定数据库名
csv_file_path = 'your_file.csv' # 修改为CSV文件路径
# 创建数据库(如果不存在)
try:
response = requests.put(f'{couchdb_url}/{database_name}')
if response.status_code not in [200, 201]:
print(f"创建数据库失败: {response.text}")
except requests.RequestException as e:
print(f"连接CouchDB失败: {e}")
# 读取CSV数据并插入CouchDB
success_count = 0
failure_count = 0
failed_records = []
with open(csv_file_path, 'r', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
try:
response = requests.post(f'{couchdb_url}/{database_name}', json=row)
if response.status_code == 201:
success_count += 1
else:
failure_count += 1
failed_records.append(row)
print(f"插入失败: {response.text}")
except requests.RequestException as e:
failure_count += 1
failed_records.append(row)
print(f"插入失败: {e}")
# 记录失败插入的数据到文件
with open('failed_inserts.json', 'w', encoding='utf-8') as f:
json.dump(failed_records, f, ensure_ascii=False, indent=4)
print(f"成功插入数量: {success_count}")
print(f"失败插入数量: {failure_count}")
代码说明:
- 配置部分:设置CouchDB的地址、数据库名以及CSV文件路径。
- 创建数据库:如果指定数据库不存在,则创建它。
- 读取CSV并插入:逐行读取CSV文件,将每行数据作为一个文档插入到CouchDB中。
- 错误处理:记录插入失败的数据,并统计成功和失败的数量。
- 结果输出:将失败插入的数据记录到
failed_inserts.json
文件中,并输出成功和失败插入的数量。
注意:需要确保CouchDB已经安装并运行,同时要根据实际情况修改CouchDB地址、数据库名和CSV文件路径。