如何使用python

时间:2018-05-07 00:46:01

标签: python json python-requests

我是一个新的JSON和python,我希望使用JSON的键和值来比较它。

我正在使用请求lib从网页获取JSON。

最近,我做到了这一点:

import requests;

URL = 'https://.../update.php';
PARAMS = { 'platform':'0', 'authcode':'code', 'app':'60' };

request = requests.get( url=URL, params=PARAMS );
data = request.json( );

我使用这个循环从json获取键和值:

for key, value in data.items( ):
    print( key, value );

它会像这样返回JSON部分:

rescode 0
desc success
config {
    "app":"14",
    "os":"2",
    "version":"6458",
    "lang":"zh-CN",
    "minimum":"5",
    "versionName":"3.16.0-6458",
    "md5":"",
    "explain":"",
    "DiffUpddate":[         ]
}

但是在使用漂亮打印的Firefox中我会得到不同的结果:

{
    "rescode": 0,
    "desc": "success",
    "config": "{
        \n\t\"app\":\"14\",
        \n\t\"os\":\"2\",
        \n\t\"version\":\"6458\",
        \n\t\"lang\":\"zh-CN\",
        \n\t\"minimum\":\"5\",
        \n\t\"versionName\":\"3.16.0-6458\",
        \n\t\"md5\":\"\",
        \n\t\"explain\":\"\",
        \n\t\"DiffUpddate\":[\n\t\t\n\t]\n
    }"
}

我打算做的是:

if data['config']['version'] == '6458':
    print('TRUE!');

但每次我都会收到此错误:

TypeError: string indices must be integers

1 个答案:

答案 0 :(得分:2)

您需要解析配置

json.loads(data['config'])['version']

或者编辑PHP以返回关联数组而不是配置对象的字符串