- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在从目录中读取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“} 。
请阅读有关slices和maps的信息。
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/
如果文件太大,ioutil.ReadAll()可能会导致内存高峰。 最佳答案 您可以使用io.Copy,它接受io.Writer和io.Reader。io.Copy使用32KB缓冲区从读取器复制到写入
造成这种情况的一些常见原因是什么?我的第一个想法是我正在读取的文件是只读的,但我已经检查过了。 调用它的代码是: QFile histogramFile(fileName); quint64 file
我是 Qt 的新手并且有点挣扎。我正在尝试使用 QTcpSocket 将字符串从客户端发送到服务器。 客户端: QByteArray block; QDataStream out(&block, QI
这个问题在这里已经有了答案: Member access into incomplete type error (3 个答案) 关闭 4 年前。 我正在通过 QNetwork 访问管理器发出一个简单
我正在尝试创建一个临时 gzip 文件并写入该文件。问题是我不了解 ReadAll 发生了什么。我希望 ReadAll 返回写入文件的字节......但是没有。然而 File.Stat 命令显示确实有
我正在尝试使用 net/http 包在 Go 中编写一个服务器。我只有一条路线,而且很简单。它从 S3 下载文件并将其返回给客户端: response, err := http.Get("some S
我正试图从这种天气中获取一个 io.Reader,它是我给出的链接或路径。对于某些上下文,我正在使用标志 func getString(link, path string) (io.Reader, e
对于我正在制作的程序,此函数在 for 循环中作为 goroutine 运行,具体取决于传入的 url 数量(无设定数量)。 func makeRequest(url string, ch chan<
ReadAll 方法 读入全部 TextStream 文件并返回结果字符串。 object.ReadAll object 应为 TextStream 对象的名称。 说明 对于大文件,使用
我必须从 30 GCS 读取 json 文件将文件夹作为字符串放入数据流管道中。而不是添加 Text.IO.Read我希望使用的每个步骤 Text.IO.ReadAll 。有什么想法可以将其设置为从多
我在从目录中读取json文件时遇到信息获取问题。我不明白,为什么当我编写代码时它根本不起作用。 func FilePathWalkDir(root string) ([]string, error)
我正在编写代码来从文件中读取字符串。使用时String s = StdIn.readAll();效果很好。但我不明白为什么,通过使用 while (!StdIn.readString().isEmpt
一位用户提示我的 cmd 应用程序在特定 GUI 设置中调用时闪现命令行窗口。 为了他的缘故,我将该应用程序制作成一个图形用户界面应用程序并连接到控制台。从 powershell 调用它时,除了光标问
我有一个 QProcess,我想在其中输出标签中的响应。首先,这是我尝试过的: QProcess *proc = new QProcess(); proc->setProcessChannelMode
这是我第一次创建restAPI。 API 应该只能处理一个请求,该请求返回表中的所有数据。我完成了本教程http://www.androidhive.info/2014/01/how-to-creat
如标题中所定义,这两个函数都返回一个空字符串。让我描述一下我的场景,我正在执行一个 python 文件,该文件最后正在打印文本,执行后文本会发布在应用程序输出上,但不会复制给定的输出。我的 pytho
我试图遍历特定 XML 节点的所有子节点并加入它们的 name 属性。结构: 期望的结果: PARAM1='$PARAM1',PARAM2='$PARAM2',PARAM3='$PARA
我正在使用 Qt 来控制串行设备。如果我向串行设备发送命令,我会执行类似 serial->write("command\r\n") 的操作。我制作了一个按钮,将纯文本小部件中的文本更改为串行端口的响应
目前正在研究 SBC (Olimex A20) 的 GPIO,我遇到了 QSocketNotifier 的问题。在我的 GPIO 上,我使用了一个具有中断功能的引脚(对于那些想了解更多信息的人:htt
我正在尝试通过启动一个QProcess QProcess process= new QProcess(); process.start("javac file.java"); 它启动成功,我可以在 Q
我是一名优秀的程序员,十分优秀!