读取页面返回字典值提示错误:TypeError: string indices must be integers, not str

路由器get_rand_key.cgi返回用于后续AES加密的随机数,该返回值是字典。

如下代码,

print pagetext返回字典{"rand_key":"c9d8b128f26058c5a684a212100bba0204beaf1795d227da4601869dd83045cd"}

print pagetext['rand_key']提示错误TypeError: string indices must be integers, not str

import urlparse  
import urllib  
import urllib2   
import string  
import json

randomkey_url = 'http://192.168.0.1/router/get_rand_key.cgi'
request = urllib2.Request(randomkey_url)
response = urllib2.urlopen(request)
pagetext = response1.read()
print pagetext
print pagetext['rand_key']

 

解决方法:

在浏览器调试中看到返回的json,修改代码如下

import urlparse  
import urllib  
import urllib2   
import string  
import json

randomkey_url = 'http://192.168.0.1/router/get_rand_key.cgi'
request = urllib2.Request(randomkey_url)
response = urllib2.urlopen(request)
pagetext = json.load(response)
print pagetext
print pagetext['rand_key']

执行结果

{u'rand_key': u'260efad1f2c85451a60c09ee96e11f6c754dade635a10b43c681df39fddca5e0'}
260efad1f2c85451a60c09ee96e11f6c754dade635a10b43c681df39fddca5e0

 

转载于:https://www.cnblogs.com/wangjibo/p/4142559.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值