gpt4 book ai didi

json - 使用iotil.ReadAll()从多个json文件写入[] string

转载 作者:行者123 更新时间:2023-12-01 22:39:22 27 4
gpt4 key购买 nike

我在从目录中读取json文件时遇到信息获取问题。我不明白,为什么当我编写代码时它根本不起作用。

func FilePathWalkDir(root string) ([]string, error) {
var files []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
files = append(files, path)
}
return nil
})
return files, err
}

var s []string

func main() {

var (
files []string
err error
)

files, err = FilePathWalkDir("D:/Go/Go_project/Go_pro/files")
if err != nil {
panic(err)
}
for _, file := range files {
//fmt.Println("Index for json:", index)
jsonFile, err := os.Open(file)
if err != nil {
log.Println("Error:", err)
}

defer jsonFile.Close()

byteValue, _ := ioutil.ReadAll(jsonFile)

_ = json.Unmarshal([]byte(byteValue), &s)
log.Printf("Unmarshaled: %v", s)

}
}
在此之后,我得到了:
2020/06/21 13:10:03 Unmarshaled: []
2020/06/21 13:10:03 Unmarshaled: []
2020/06/21 13:10:03 Unmarshaled: []
Json文件:
第一:
{
"name":"Kate",
"date":"2013-04-23T19:24:59.511Z",
"data":"is nice"
}
第二:
{
"name":"Gleison",
"date":"2012-04-23T19:25:00.511Z",
"data":"is a good person"
}
第三:
{
"name":"Rodrigo",
"date":"2013-04-23T20:24:59.511Z",
"data":"is kind"
}

最佳答案

您正在尝试解压缩 slice 类型[] string,而文件中的数据是映射类型map [string] string。
slice 类型为: [“1”,“2”,“3”] ,而 map 类型为: {“name”:“Andrew”,“age”:33“}
请阅读有关slicesmaps的信息。

func FilePathWalkDir(root string) ([]string, error) {
var files []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
files = append(files, path)
}
return nil
})
return files, err
}

// var s []string !
var s map[string]string

func main() {
files, err := FilePathWalkDir("D:/Go/Go_project/Go_pro/files")
if err != nil {
panic(err)
}

for _, file := range files {
jsonFile, err := os.Open(file)
if err != nil {
// ???
log.Println("Error:", err)
}

defer jsonFile.Close()

byteValue, _ := ioutil.ReadAll(jsonFile)

if err := json.Unmarshal([]byte(byteValue), &s); err != nil {
// always check errors
panic(err)
}

log.Printf("Unmarshaled: %v", s)

}
}

关于json - 使用iotil.ReadAll()从多个json文件写入[] string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62497229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com