package main import ( "encoding/json" "fmt" "os" ) // 读取账号配置 // Python: eval(f.read()) -> Go: JSON解析 func LoadAccountConfig(filename string) (*AccountConfig, error) { // 检查文件是否存在 if _, err := os.Stat(filename); os.IsNotExist(err) { // 文件不存在,创建模板文件 defaultConfig := AccountConfig{ Username: "your_username", Password: "your_password", } file, _ := json.MarshalIndent(defaultConfig, "", " ") os.WriteFile(filename, file, 0644) return nil, fmt.Errorf("账号文件不存在,已创建模板 %s,请填写后重试", filename) } // 读取文件 data, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("读取账号文件失败: %v", err) } // 解析JSON var config AccountConfig err = json.Unmarshal(data, &config) if err != nil { return nil, fmt.Errorf("解析账号文件失败,请确保是JSON格式: %v", err) } return &config, nil } // 读取Alpha表达式列表 // Python: json.load(f) -> Go: 也是json解析,但要定义结构 func LoadAlphaList(filename string) ([]map[string]interface{}, error) { // 检查文件是否存在 if _, err := os.Stat(filename); os.IsNotExist(err) { // 创建示例文件 example := []map[string]interface{}{ { "regular": "示例表达式", "settings": map[string]interface{}{}, "type": "REGULAR", }, } file, _ := json.MarshalIndent(example, "", " ") os.WriteFile(filename, file, 0644) return nil, fmt.Errorf("Alpha文件不存在,已创建示例 %s,请添加表达式后重试", filename) } data, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("读取Alpha文件失败: %v", err) } // 解析为通用格式 // Go中,如果JSON结构不确定,可以用[]map[string]interface{} var alphaList []map[string]interface{} err = json.Unmarshal(data, &alphaList) if err != nil { return nil, fmt.Errorf("解析Alpha文件失败: %v", err) } return alphaList, nil }