go - Golang 将字符串化列表转换为切片
问题描述
我有一个工作流程,其中创建了一个列表并将其发送到 SQS 队列(因此必须转换为字符串),然后由 Go 函数拾取它。我需要解析以下字符串列表:
"['bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler']"
变成这样的字符串切片:
[]string{'bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler'}
所以我可以通过索引访问和解析它们。我该怎么做?
解决方案
您可以将字符串转换为 json 并使用 json 解码器获取字符串数组
package main
import (
"fmt"
"encoding/json"
"strings"
)
func main() {
inputString := "['bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler']"
// convert string to json string
jsonString := strings.ReplaceAll(inputString, "'", "\"")
var expectedStringArray []string
json.Unmarshal([]byte(jsonString), &expectedStringArray)
fmt.Println(expectedStringArray)
}
这应该可以解决您的问题
请注意,当您有'
一个数组字符串时,上述解决方案将失败。
对于一个可靠的解决方案您可以将正确的 JSON 推送到队列中,并且您可以跳过我上面提供的解决方案中的转换部分。
推荐阅读
- maven - 如何在 filevault-package-maven-plugin 中使用钩子
- python - tkinter 值错误:id 必须是从 after 或 after_idle 返回的有效标识符
- flutter - 如何在请求后更改块状态数据而不再次发送请求?
- django - 如何让一个模型字段基于另一个模型字段?
- sql - 如何使用 UPDATE 合并和删除 SQL 中的重复行?
- java - 如何访问相同的文本区域变量?
- prolog - 给定谓词和列表的 Prolog 接地
- python - 搜索字典并显示整个条目的功能
- c# - 在 GroupBy 之后应用 OrderByDescending
- java - 在java中将元素添加到xml文件而不将其加载到内存中