得到一个json的值

时间:2018-04-25 11:15:14

标签: python python-3.x python-2.7

我有这个:

alert = Alert(title=a,
          tlp=3,
          tags=tags,
          description='N/A',
          type='external',
          source='instance1',
          sourceRef=sourceRef,
          artifacts=artifacts)

我想知道如何获得' title'的价值,我试图这样做:

print(alert['title'])

但不起作用:

  

TypeError:'提醒'对象不可订阅

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

alert是一个Python对象。您应该使用点符号( alert.title )代替alert['title']

话虽如此,如果由于某种原因您实际上对alert['title']感兴趣,您可以在__getitem__中实施Alert

def __getitem__(self, item):
    return getattr(self, item)

这是最基本的实现。您可能希望处理item不存在的情况(当前异常将传播到调用代码)

class Foo:
    x = 1

    def __getitem__(self, item):
        return getattr(self, item)


f = Foo()
print(f['x'])
# 1
print(f['y']
# AttributeError: 'Foo' object has no attribute 'y'

处理缺失属性的一种方法是使用getattr的3 rd 参数,这是搜索属性不存在时的默认值:

class Foo:
    x = 1

    def __getitem__(self, item):
        return getattr(self, item, None)


f = Foo()
print(f['y'])
# None