在 Python 中将任何 JSON 转换为标准 dict 的 golang 等价物是什么?

在 Python 中,您可以执行以下操作:


r = requests.get("http://wikidata.org/w/api.php", params=params)

data = r.json()

现在data是一个字典或哈希表(另外,我不需要事先定义字典的结构),我可以通过做 data["entities"], data["entities"]["Q12 来访问键的值“], 等等。


我将如何在 golang 中做到这一点?到目前为止,我有这个:


resp, err := http.Get("http://wikidata.org/w/api.php?"+v.Encode())

if err != nil {

    // handle error

}


defer resp.Body.Close()

decoder := json.NewDecoder(resp.Body)

var data interface{}

decodeErr := decoder.Decode(&data)

if decodeErr != nil {

    // handle error

}

fmt.Println(data["entities"], data["entities"]["Q"+id])

这给了我编译错误: invalid operation: data["entities"] (index of type interface {})


那么应该var data是什么类型呢?我是否需要事先为 JSON 定义一个结构,或者是否可以在不修改代码的情况下处理任何 JSON 文件/流?


哈士奇WWW
浏览 162回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go