2017-06-18 48 views
-3

我试图访问特定的json数据,下面是代码。即时通讯使用Python 2.7。然而,它推出了错误类型错误:字符串索引必须是整数:如何解决TypeError:字符串索引必须是整数

http = win32com.client.Dispatch('MSXML2.XMLHTTP.6.0') 
http.open('POST', 'url', False, username, password) 
http.setRequestHeader("Content-type" , "text/json"   ) 
http.setRequestHeader("User-Agent"  , "Your User Agent String") 
http.setRequestHeader("Accept-Encoding" , "gzip, deflate"  ) 
http.setRequestHeader("Content-Encoding", "gzip, deflate"  ) 
global data 
http.send(json) 

global data 
data = http.responseText 
#data=data.split("{}{}") -try to make json data print nicely but failed. 
print data['responses'][0]['status'] 

的json数据如下

{ 
    "responses": [ 
     { 
      "tran_id": "1234", 
      "UUID": "122262d7-85f8-4e53-af98-865627cb82cb", 
      "status": "success", 
      "messages": [], 
      "result_params": { 
       "record_count": "1" 
      }, 
      "result_table": [ 
       { 
        "id": "101160766", 
        "rev": "13", 
        "hierarchy_id": "F80005AF46FF0000B5EA6FE06078159E80", 
        "is_current": "1"}} 

+1

你的json不正确。 – Ravi

回答

0

你有错JSON,其中在最后缺少一些括号。

"is_current": "1"}} 

应更改为

"is_current": "1"}]}]} 

>>Demo<<

+0

JSON是正确的。它来自某个网​​站。即时复制错误的人。但重点在那里。当我尝试从嵌套的JSON数据读取特定数据时出现错误 – jess

+0

但是,它工作正常。你可以参考我的演示链接 – Ravi

+0

我想知道是因为我得到的真正的json数据没有像上面显示的那样缩进。以上数据我直接从JSON输出复制,我从邮递员应用程序获得。信息是一样的。只有数据打印的方式不同。你认为这是它不适合我的原因吗? – jess

0

a)您的 “内容类型” 头字段是不正确。它应该是application/json。

b)您的“内容编码”标题字段可能不正确。它说你发送了两个 deflate和gzip编码的数据。

+0

你有什么建议b)?导致我不熟悉deflate和gzip编码的数据 – jess

相关问题