我有这个列表,它是 rs = cur.fetchall 的返回值,但我找不到其中是否包含值“type”。
rs=[('objectid', 'integer'), ('nameshort', 'character varying'), ('urbanprojectyear', 'character varying'), ('urbanprojectname', 'character varying'), ('notes', 'character varying'), ('scalerank', 'smallint'), ('stylename', 'character varying'), ('firstyear', 'smallint'), ('lastyear', 'smallint'), ('type', 'character varying'), ('name', 'character varying'), ('globalid', 'character varying'), ('created_user', 'character varying'), ('created_date', 'timestamp without time zone'), ('last_edited_user', 'character varying'), ('last_edited_date', 'timestamp without time zone'), ('sde_state_id', 'bigint'), ('shape', 'USER-DEFINED')]
我已经尝试了这个和其他几种方法。但它总是转到 if 语句的 else。
if 'type' in rs:
print("True")
else: print("False")
我错过了什么?
请您参考如下方法:
您缺少的是 'type' 不在 rs 中。但是,('type', 'character varying') 是。
如果你想检查一个以 'type' 开头的元组是否在列表中,这会起作用:
print('type' in [x for x, _ in rs])
还有其他更有效但更冗长的方法来解决问题,但您明白了。
在您的情况下,该列表似乎确实代表了一些比 dict 更好的东西。因此,这可能最适合您的情况:
dict_rs = dict(rs)
print('type' in dict_rs)
