如何从 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,这由您自行决定 ;-) .
我是 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,这由您自行决定 ;-) .