如何使用Python从Web站点获取和验证JSON数据?

时间:2012-11-27 16:48:52

标签: python json

我需要创建cronjob来测试网站是否每隔一小时检索一次数据。

最初尝试将json数据粘贴到文本文件中,并通过编码和解码来验证数据。现在我需要每次运行cron作业时加载实时数据(json数据)。使用了urllib2但它没有收到来自网址的请求响应。

网址 - >在加载 - >通过firebug给出url执行和从那里的json数据。我如何导入或解析这样的URL到python。请给我一个例子。

我的步骤: 创造shedule

     1.45 08 * * 1-5 /home/user/myfile/daily_verifydata.sh >> /home/user/cronlog.log 

daily_verifydata.sh

    #!/bin/sh
    python /home/user/path/Dashboard_test.py

Dashboard_test.py

    import json
    import urllib2

    f = open('test.txt','r') # open in read mode
    data = f.read()
    print data

    # How to Parse the json from the URL to python

    data_string = json.dumps(data)
    print '\n''ENCODED:', data_string

    decoded = json.loads(data_string)
    print '\n''DECODED:', decoded

    # Validating data through decoded output. 

如果可以通过curl解析,需要知道语法

谢谢,vijay

2 个答案:

答案 0 :(得分:1)

我建议使用请求

import requests
import simplejson

session = requests.session()
# I presume your site has authentication
response = session.post(URL_TO_LOGIN, {
            'username': username,
            'password': password
        })
response = session.get(URL_TO_JSON)
if response.ok:
    simplejson.loads(response.text)

答案 1 :(得分:1)

要在bash脚本中检索JSON,您可以使用漂亮的工具httpie

如果你想从python脚本中提取JSON - 最好的选择是requests lib

对于验证,它很复杂 - JSONSchema