Python 拆分Json数据时获取TypeError?
我有一个json数据,如下所示:Python 拆分Json数据时获取TypeError?,python,arrays,json,Python,Arrays,Json,我有一个json数据,如下所示: json_data = '{"data":"[{"Date":"3/17/2017","Steam Total":60},{"Date":"3/18/2017","Steam Total":15},{"Date":"3/19/2017","Steam Total&q
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"]
我得到一个错误:
TypeError:字符串索引必须是整数,而不是str
我认为json数据中有一个错误。有人能帮我吗?你说得对。你的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":[]
}
}
在您的代码中有一些问题
json\u-input\u-data=json\u-data[“data”]
,变量json\u-data
不是json对象,而是字符串对象,您可以尝试通过字符串键获取字符串位置,以便从字符串json获取json对象使用json
api:{“数据”:[{“日期”:“2017年3月17日”,“蒸汽总量”:60},{“日期”:“2017年3月18日”,“蒸汽总量”:15},{“日期”:“2017年3月19日”,“蒸汽总量”:1578},{“日期”:“2017年3月20日”,“蒸汽总量”:1604}],“数据详情”:{“数据键”:“蒸汽总量”,“给定高”:“1500”,“给定低”:“1000”,“运行信息”[/code>
尝试将json\u数据解析为json格式(使用
json.parse(json\u数据)
)。目前它的类型是string——这正是您的错误所说的。正如前面指出的,您的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"]
这将打印“3/17/2017”您声明一个名为
json_data
的字符串,然后它的行为就像一个字符串。这就是异常告诉你的。就像这里的其他人试图说的那样,您的数据中也存在错误,但是您提供的异常是由于访问字符串时将其视为字典。您需要添加一个缺少的调用,例如,json.loads(…)
json_data='{“data”:“[…..在最后一个引号中有一个错误,您想声明一个数组,但不是因为QuoteEyes json数据格式错误而声明了一个字符串,而是:json_data={“data”:[{“Date”:”2017年3月17日,“蒸汽总量”:60},{“日期”:“2017年3月18日”,“蒸汽总量”:15},{“日期”:“2017年3月19日”,“蒸汽总量”:1578},{“日期”:“2017年3月20日”,“蒸汽总量”:1604},{“数据键”:“蒸汽总量”,“给定高”:“1500”,“给定低”:“1000”,“运行信息”:[]}尝试使用任何json解析器检查json数据如果您从转储文件获取此数据,请在将数据转储到文件之前尝试对数据进行strigifig。例如:如果您使用python转储到文件,请使用json.dumps(您的_数据),然后使用json.loads(文件内容)将其读回