如何从API构建一个基于JSON的类?

2024-04-20 12:34:07 发布

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

我是OOP新手,我正在尝试模拟一个Facebook事件。我已经定义了一个类,但是我的init方法抛出了一个NameError

class Event:
    'A Facebook event object'

    def __init__(self, item):
        self.eid = item['eid'] 
        self.name = item['name'][:255]
        self.start_time = item['start_time']
        self.end_time = item['end_time']
 File "file.py", line 12, in Event  
    self.name = item['name'][:255]  
NameError: name 'item' is not defined

我要传递到init的项是Facebook的API的JSON输出的一个元素。e、 g

    {
      "eid": "534198190011161", 
      "name": "Name of event", 
      "start_time": "2015-04-13T22:30:00+0100", 
      "end_time": "2015-07-31T03:00:00+0100"
    }

总的来说,我真的很难对付OPP和api,有人能帮我吗


Tags: nameselfeventfacebooktimeinit事件item
1条回答
网友
1楼 · 发布于 2024-04-20 12:34:07

您只需要Python-JSON解析

import json

json_data = """{
  "eid": "534198190011161", 
  "name": "Name of event", 
  "start_time": "2015-04-13T22:30:00+0100", 
  "end_time": "2015-07-31T03:00:00+0100"
}"""

class Event:
    """A Facebook event object"""
    def __init__(self, item):
        self.eid = item['eid']
        self.name = item['name'][:255]
        self.start_time = item['start_time']
        self.end_time = item['end_time']

item = Event(json.loads(data))

print(item.name)

u'Name of event'

请注意,不应使用单引号或双引号来描述方法。使用三重引号,也就是docstring。你也可以用named tuple来表示你的事件,这由你决定;-)

相关问题 更多 >