我有一个像这样的json数据:
json_data = '{"data":"[{"Date":"3/17/2017","Steam Total":60},{"Date":"3/18/2017","Steam Total":15},{"Date":"3/19/2017","Steam Total":1578},{"Date":"3/20/2017","Steam Total":1604}]", "data_details": "{"data_key":"Steam Total", "given_high":"1500", "given_low":"1000", "running_info": []}"}'
json_input_data = json_data["data"]
json_input_additional_info = json_data["data_details"]
我收到错误:
我认为json数据中存在错误。有人可以帮我吗?
答案 0 :(得分:2)
在你的代码中有一些问题。
代码:json_input_data = json_data["data"]
,变量json_data
不是Json对象,是一个String对象,你尝试通过字符串键获取字符串位置,从字符串中获取一个Json对象json使用json
api:json
你的Json字符串不是有效的,这是一个有效的版本:
{"data":[{"Date":"3/17/2017","Steam Total":60},{"Date":"3/18/2017","Steam Total":15},{"Date":"3/19/2017","Steam Total":1578},{"Date":"3/20/2017","Steam Total":1604}], "data_details": {"data_key":"Steam Total", "given_high":"1500", "given_low":"1000", "running_info": []}}
现在,您的代码运行正常。
答案 1 :(得分:1)
尝试将 json_data 解析为JSON格式(使用JSON.parse(json_data)
)。目前它的类型是字符串 - 这正是你的错误所说的。
答案 2 :(得分:0)
你是对的。你的json确实是错的。
你可以尝试使用这个json吗?
{
"data":[
{
" Date":"3/17/2017",
"Steam Total":60
},
{
"Date":"3/18/2017",
"Steam Total":15
},
{
"Date":"3/19/2017",
"Steam Total":1578
},
{
"Date":"3/20/2017",
"Steam Total":1604
}
],
"data_details":{
"data_key":"Steam Total",
"given_high":"1500",
"given_low":"1000",
"running_info":[]
}
}
答案 3 :(得分:0)
正如Pongpira Upra指出的那样,你的json形成不好,应该是这样的。
{
"data":[
{
"Date":"3/17/2017",
"Steam Total":60
},
{
"Date":"3/18/2017",
"Steam Total":15
},
{
"Date":"3/19/2017",
"Steam Total":1578
},
{
"Date":"3/20/2017",
"Steam Total":1604
}
],
"data_details":{
"data_key":"Steam Total",
"given_high":"1500",
"given_low":"1000",
"running_info":[]
}
}
为了检索信息,你应该写
json_data[0]["Date"]
这将打印“2017年3月17日”
答案 4 :(得分:0)
你声明一个名为json_data
的字符串,然后它就像一个字符串。这就是异常告诉你的。像其他人一样试图说 - 你做在你的数据中也有错误,但你提供的异常是因为访问字符串就像是字典一样。您需要添加一个丢失的电话,例如json.loads(...)
。