无法迭代我自己的对象

2024-04-18 10:45:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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'])

并查看评论列表。万分感谢


Tags: 对象keyinselfcomidjsonurl