我有一个给出 JSON 结果的 URL。我可以解析 json 并从 JSON 打印数据。但我的主要目的是将每个内容分组并将它们打印到 Excel 工作表中。
我写的代码是:
import json
import urllib2
url = urllib2.urlopen("urlquery")
data = json.load(url)
print data
Run Code Online (Sandbox Code Playgroud)
数据以dict类型打印。在此,每个内容具有至少10个参数喜欢ID,Name,Rating,Genre,Poster,等。
如何使用所有参数对每个内容进行分组?我被困在这里,但从小组中我知道如何打印到 Excel 工作表中。
示例 JSON 响应如下:
{
facets: { },
contents: [
{
id: "groupid://7110070",
type: "group",
adult: false,
source: "group",
instanceId: "groupid://7110070",
parentalRating: {
scheme: "custom",
rating: 0
},
Run Code Online (Sandbox Code Playgroud)
出于安全考虑,我无法显示整个文件。
您可以使用itertools.groupby给contents定的键进行分组。看看如何使用 Python 的 itertools.groupby()?想要查询更多的信息。
在下面,我contents使用category键进行分组,键可以是您想要从字典中输入的任何内容:
from itertools import groupby
contents = [
dict(adult=True, id=111, name="Bob"),
dict(adult=False, id=332, name="Chris"),
dict(adult=True, id=113, name="John"),
dict(adult=False, id=224, name="Amir"),
dict(adult=True, id=115, name="Yann"),
dict(adult=False, id=336, name="Lee"),
dict(adult=False, id=227, name="Nadia"),
dict(adult=False, id=228, name="Lucy")
]
# XXX: make sure to sort the content list
# with the key you want to group by
contents.sort(key=lambda content: content['adult'])
# then use groupby with the same key
groups = groupby(contents, lambda content: content['adult'])
for adult, group in groups:
print 'adult', adult
for content in group:
print '\t', content
Run Code Online (Sandbox Code Playgroud)
这是输出:
adult False
{'id': 332, 'name': 'Chris', 'adult': False}
{'id': 224, 'name': 'Amir', 'adult': False}
{'id': 336, 'name': 'Lee', 'adult': False}
{'id': 227, 'name': 'Nadia', 'adult': False}
{'id': 228, 'name': 'Lucy', 'adult': False}
adult True
{'id': 111, 'name': 'Bob', 'adult': True}
{'id': 113, 'name': 'John', 'adult': True}
{'id': 115, 'name': 'Yann', 'adult': True}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10577 次 |
| 最近记录: |