我是Python的新手,无法理解这一点。我正在尝试从json
提要生成一个对象。我尝试为json fed中的每一个具有所有属性的项创建一个字典。我得到的错误不是TypeError: 'mediaObj' object is not subscriptable
就是iterable
为了获得额外的点数,数组也有许多子字典。我想要的是能够访问嵌套的数据以及。你知道吗
这是我的密码:
url = jsonfeedwithalotofdata.com
data = urllib.request.urlopen(url)
data = instagramData.read()
data = instagramData.decode('utf-8')
data = json.loads(data)
media = data['data']
class mediaObj:
def __init__(self, item):
for key in item:
setattr(self, key, item[key])
print(self[key])
def run(self):
return self['id']
for item in media:
mediaPiece = mediaObj(item)
这将来自一个json
提要,如下所示(因此data是“data”后面的数组):
"data": [
{
"attribution": null,
"videos": {},
"tags": [],
"type": "video",
"location": null,
"comments": {},
"filter": "Normal",
"created_time": "1407423448461",
"link": "http://instagram.com/p/rabdfdIw9L7D-/",
"likes": {},
"images": {},
"users_in_photo": [],
"caption": {},
"user_has_liked": true,
"id": "782056834879232959294_1051813051",
"user": {}
}
所以我希望我可以为数组中的每个项目创建一个对象,然后我可以,例如,说:
print(mediaPiece['id'])
或者更好
print(mediaPiece['comments'])
并查看评论列表。万分感谢
您遇到了一个问题,因为您使用属性来存储数据项,但使用列表/字典查找语法来尝试检索它们。你知道吗
用
print(self[key])
代替print(getattr(self, key))
,用return self['id']
代替return self.id
。你知道吗相关问题 更多 >
编程相关推荐