这是我的问题:我想用python过滤掉一大块文本,但我发现的所有内容都是按行过滤的,即使用"如果是line.startswith",我就是' ;我想我可以在这里做到:/。
这是我的实际代码:
import json
import requests
data = requests.get('http://www.reddit.com/r/todayilearned/new/.json');
print(data.json())
我想在""标题:":"之间取内容和",)"。 你有什么想法 ? 谢谢!
答案 0 :(得分:2)
查看print(data.json())
的输出.JSON Python模块可以很容易地使用for ... in ...循环遍历JSON数据。试一试
for x in data.json():
print x
查看输出结果。之后,添加更多内部循环来循环遍历x,您将看到如何访问每个JSON数据。
答案 1 :(得分:2)
JSON的全部意义在于为您处理解析 - 您可以将JSON对象作为常规Python字典/列表。
例如,以下是获取JSON对象中所有标题的方法:
obj = data.json()
for child in obj['data']['children']:
print child['data']['title']
您可以使用JSON pretty-printer(它将格式化JSON字符串以便更容易理解其结构)来探索JSON块的结构,或者直接在Python中探索对象:
>>> obj = data.json()
>>> type(obj)
<type 'dict'>
>>> obj.keys()
[u'kind', u'data']
>>> print obj['kind']
u'Listing'
>>> type(obj['data'])
<type 'dict'>
>>> obj['data'].keys()
[u'modhash', u'children', u'after', u'before']
>>> type(obj['data']['children'])
<type 'list'>
# etc...