Python3.6.9多用户接口JSON响应写入CSV问题修复求助
修复后代码
import requests import csv user_list = '''robby.cornelissen adrian.charles tyler.swenson brandon.miller nathan.gallete''' # 按照期望输出调整端口数组,和用户数量一一对应 ports = [2316, 2316, 2340, 2380, 2482] # 去除每个用户名前后的空格、换行符,避免请求参数错误 users = [u.strip() for u in user_list.split('\n')] fname = "result.csv" with open(fname, "w", encoding='utf-8') as file: csv_file = csv.writer(file, lineterminator='\n') # 表头新增user_list、port两列 csv_file.writerow(["depotFile", "host", "isgroup", "line", "perm", "unmap", "user", "user_list", "port"]) for user, port in zip(users, ports): print(f'当前处理用户和端口: {user}, {port}') url = f'http://198.98.99.12:46567/{port}/protects/{user}' print(f'请求接口: {url}') # 直接使用带认证的请求解析数据,删除重复的无认证无效请求 response = requests.get(url, auth=('tool-admin', 'password')) data = response.json() for item in data: # 每行末尾追加当前循环对应的用户名和端口 row = list(item.values()) + [user, port] csv_file.writerow(row)
修复说明
- 处理了用户名首尾多余的空格、换行符,避免接口请求参数错误
- 删除了重复的无认证无效请求,直接使用带身份校验的请求结果解析JSON,解决部分用户数据请求失败无法写入的问题
- 调整ports数组元素,和5个用户一一匹配,符合期望输出的端口对应关系
- 表头新增
user_list和port两列,写入每行数据时自动追加当前对应的用户名和端口 - 新增文件编码指定为utf-8,避免特殊字符写入乱码
内容的提问来源于stack exchange,提问作者user4948798
相关产品推荐
相关产品推荐

