如何从 API 围绕 JSON 构建 class?

How do you build a class around JSON from an API?

我是 OOP 的新手,我正在尝试为 Facebook 事件建模。我定义了一个 class,但我的 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 输出的一个元素。例如

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

总的来说,我真的在与 OPP 和 APIs 作斗争,有人可以帮助我吗?

你只需要PythonJSON解析。

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'

请注意,您不应使用单引号或双引号来描述方法。使用三重引号 aka 文档字符串。您也可以为您的活动使用 named tuple,这由您自行决定 ;-) .