【发布时间】:2014-06-12 00:12:49
【问题描述】:
我已经四处搜索,但没有看到任何完全涵盖我需要做的事情,所以如果我在搜索中错过了答案,请向我推荐正确的链接,在此先感谢。简单地说,我要做的就是从我正在调用的 JSON 对象列表中获取两个值,然后从列表中的每个对象中删除两个值,而不是整个 key: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)。感谢您的所有帮助。
【问题讨论】:
-
您需要向我们展示 更多 加载的 JSON。您显然有一个顶级字典,并且其中至少一个值包含一个带有 more 字典的列表。顶级字典没有
domain键,是那些嵌套字典。 -
不要使用 urllib,而是尝试 python 请求。 docs.python-requests.org 真的很震撼 ;)
-
我第一次使用请求,我只是在尝试不同的东西,谢谢。我还按要求更新了列表。
-
这是真正的 json 吗?我看到一个丢失的
}。 -
对不起,我修好了,列表比较长,所以我就拼接了。