在使用Python lambda';s

在使用Python lambda';s,python,lambda,rethinkdb,rethinkdb-python,Python,Lambda,Rethinkdb,Rethinkdb Python,我有一个数据库查询,它基本上返回以“CA:FA”开头的“basicConstraints”字段的文档 但是,在我的一些文档中,“basicConstraints”字段不存在 q = r.db('scanafi').table(active_table) \ .concat_map(lambda doc: doc["certificates"]\ .concat_map(lambda x: x["parsed_certificate"]["X509 extensions"])\ .filt

我有一个数据库查询,它基本上返回以“CA:FA”开头的“basicConstraints”字段的文档

但是,在我的一些文档中,“basicConstraints”字段不存在

q = r.db('scanafi').table(active_table) \
.concat_map(lambda doc: doc["certificates"]\
.concat_map(lambda x: x["parsed_certificate"]["X509 extensions"])\
    .filter(lambda x: x["basicConstraints"]
.match("^CA:FA"))) \
.run()

我怎样才能在我的查询中包含所有包含此缺失字段的文档?

您的
x
似乎没有常规python dict之类的方法(我不熟悉)。您可以在这里使用一个实函数,并使用try/except子句:

def basic_constraints(x):
    try:
        return x["basicConstraints"]
    except:  # find out what the actual exception is and put that here
        return True

q = r.db('scanafi').table(active_table) \
.concat_map(lambda doc: doc["certificates"]\
.concat_map(lambda x: x["parsed_certificate"]["X509 extensions"])\
    .filter(basic_constraints)
.match("^CA:FA"))) \
.run()## Heading ##

您的
x
似乎没有像常规python dict那样的方法(我不熟悉)。您可以在这里使用一个实函数,并使用try/except子句:

def basic_constraints(x):
    try:
        return x["basicConstraints"]
    except:  # find out what the actual exception is and put that here
        return True

q = r.db('scanafi').table(active_table) \
.concat_map(lambda doc: doc["certificates"]\
.concat_map(lambda x: x["parsed_certificate"]["X509 extensions"])\
    .filter(basic_constraints)
.match("^CA:FA"))) \
.run()## Heading ##

您可以编写
x.has_字段('basicConstraints').not().或(x['basicConstraints'].match(^CA:FA”)

您可以编写
x.has_字段('basicConstraints').not().或(x['basicConstraints'].match(^CA:FA”))
谢谢您的快速响应。所以我试过了,但它抛出了以下错误:
.filter(lambda x:x[“basicConstraints”]如果x中的“basicConstraints”为True类型错误:类型为“Var”的参数不可写
感谢您的快速响应。所以我试过了,但它抛出了以下错误:
.filter(lambda x:x[“basicConstraints”]如果是“basicConstraints”在x else True TypeError中:“Var”类型的参数不可编辑