使用python仅从JSON键:值对中提取值

时间:2014-06-10 17:42:04

标签: python json

我已经四处寻找并且没有看到任何可以覆盖我需要做的事情,所以如果我在搜索中错过了答案,请提前给我一个正确的链接,谢谢。简单地说,我想要做的就是从我正在调用的JSON对象列表中取两个值,并从列表中的每个对象中删除两个值,而不是整个键:value。

目前我的代码看起来像这样:

import json, urllib2, pprint

url = ('url_to_be_read')
urlFile = urlib2.urlopen(url)
jsonList = json.load(urlFile)

pprint (jsonList['domain']

我也尝试过这种方式:https://stackoverflow.com/a/15580120/3483414但我得到两种方式:“Keyerror:'domain'”

我的JSON对象列表的一个示例(在调用它并将其打印到测试之后)如下:

 # Edited as requested
 {u'data': [{u'categories': [],
             u'ip': u'123.456.78.9',
             u'domain': u'com.somedomain',
             u'handler': 7},
            {u'categories': [],
             u'ip': u'9.876.543.21',
             u'domain': u'com.differendomain',
             u'handler': 7}],
  u'elapsedTime': 130,
  u'successful': True}

简单的要点是我只需要来自列表中每个对象的IP和域的值。我没有费心去尝试检索第二部分(IP),直到我弄清楚第一部分。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

所以在黑客攻击和谷歌之后,我想出的答案是:

import requests, json

r = r.requests.get('path_to_url.tld')
j = r.text
j = json.loads(j)
json_string = json.dumps(j,sort_keys=True, indents=2)
parent = j['data']
for item in parent:
    print item["domain"]
        print item["ip"]

这将在我的文件中提供我想要的内容以供以后使用:

someDomain.com
123.4.5.6
otherDomain.net
12.34.56.78

感谢大家尝试帮助。