#!/usr/bin/env python3 """ 测试配置保存功能 """ import json import os from pathlib import Path def check_config(): """检查当前配置""" config_path = Path("default.json") if not config_path.exists(): print("❌ default.json 不存在") return try: with open(config_path, 'r', encoding='utf-8') as f: config = json.load(f) influx_config = config.get('influx', {}) print("📋 当前InfluxDB配置:") print(f" URL: {influx_config.get('url', 'N/A')}") print(f" Org: {influx_config.get('org', 'N/A')}") print(f" Token: {influx_config.get('token', 'N/A')[:20]}..." if influx_config.get('token') else " Token: N/A") print(f" Bucket: {influx_config.get('bucket', 'N/A')}") print(f" Measurement: {influx_config.get('measurement', 'N/A')}") # 检查必要字段是否存在 required_fields = ['bucket', 'measurement'] missing_fields = [] for field in required_fields: if field not in influx_config: missing_fields.append(field) if missing_fields: print(f"\n⚠️ 缺少字段: {missing_fields}") return False else: print("\n✅ 所有必要字段都存在") return True except Exception as e: print(f"❌ 读取配置失败: {e}") return False def add_missing_fields(): """添加缺少的字段""" config_path = Path("default.json") try: with open(config_path, 'r', encoding='utf-8') as f: config = json.load(f) influx_config = config.get('influx', {}) # 添加缺少的字段 if 'bucket' not in influx_config: influx_config['bucket'] = 'PCM' print("➕ 添加 bucket: PCM") if 'measurement' not in influx_config: influx_config['measurement'] = 'experiment_status' print("➕ 添加 measurement: experiment_status") # 保存配置 with open(config_path, 'w', encoding='utf-8') as f: json.dump(config, f, indent=2, ensure_ascii=False) print("✅ 配置已更新并保存") return True except Exception as e: print(f"❌ 更新配置失败: {e}") return False def main(): print("配置保存测试工具") print("=" * 30) print("1️⃣ 检查当前配置...") if check_config(): print("\n🎉 配置完整,无需修改") else: print("\n2️⃣ 添加缺少的字段...") if add_missing_fields(): print("\n3️⃣ 重新检查配置...") check_config() if __name__ == "__main__": main()