我尝试根据符号:|
拆分字符串,并在:
上进一步拆分其中的每个字符串,并将结果转换为字典,如下所示。
column_data = 'component_id:numeric(15,0)|name:character varying(30)|operation_num:numeric(15,0)|component_item:numeric(15,0)|item_number:character varying(800)|last_update_date:timestamp without time zone|last_updated_by:numeric(15,0)|creation_date:timestamp without time zone|created_by:numeric(15,0)|item_num:numeric|component_quantity:numeric|component_yield_factor:numeric|component_remarks:character varying(240)|effectivity_date:date|change_notice:character varying(10)'
column_names = dict(item.split(":") for item in gp_column_data.split("|"))
但我在IDE上看到一条警告,上面写着:
Unexpected type(s): (Generator[List[str], Any, None]) Possible types: (Mapping) (Iterable[Tuple[Any, Any]])
如下图所示:
同样的逻辑在Python shell上运行得很好,但是当我将逻辑放到IDE上时,这行代码会突出显示。gp_column_data
是我作为方法参数接收字符串。
def fix_source_columns(gp_column_data: str, precision_columns:str):
column_names = dict(item.split(":") for item in gp_column_data.split("|"))
我是Python的新手,经常在IDE上看到这些消息。有没有人能告诉我这是一条错误消息?如果是这样,我如何解决这个问题?
发布于 2020-04-22 19:24:16
集成开发环境足够智能地警告您,如果item
不包含:
(如果有多个:
,则输出2个以上),则item
可能会输出一个带有单个元素的iterable。在这些情况下,dict
将失败,因为它需要一个所有元素都恰好有2个元素的迭代器(这正是警告中的Iterable[Tuple[Any, Any]]
的意思)。
https://stackoverflow.com/questions/61363655
复制相似问题