私信  •  关注

heemayl

heemayl 最近创建的主题
heemayl 最近回复了
5 年前
回复了 heemayl 创建的主题 » Selenium/Python TypeError:“WebElement”对象不可iterable

通过以下方法获得单个元素(第一个元素):

driver.find_element_by_xpath("/html/body/div")

这显然是不可接受的。

对于多个元素,即要获得iterable,请使用:

driver.find_elements_by_xpath("/html/body/div")

注意 s element .

还可以查看 documentation

4 年前
回复了 heemayl 创建的主题 » Python:将列表中的两个项添加为key:pair to dictionary

您应该为列表中的偶数个元素编写代码,但是当您有奇数个元素时,索引处的元素 i+1 不存在,因此错误。

你也可以 zip 在同一个迭代器上以成对方式使用连续值,并理解dict:

In [239]: lst = [1, 2, 3, 4, 5, 6]                                                                                                                                                                          

In [240]: {k: v for k, v in zip(*[iter(l)] * 2)}                                                                                                                                                            
Out[240]: {1: 2, 3: 4, 5: 6}

对于奇数个元素,可以使用 itertools.zip_longest 用一个 fillvalue 要填写缺少的最后一个值:

In [241]: lst = [1, 2, 3, 4, 5, 6, 7]                                                                                                                                                                       

In [242]: {k: v for k, v in itertools.zip_longest(*[iter(l)] * 2, fillvalue=None)}                                                                                                                          
Out[242]: {1: 2, 3: 4, 5: 6, 7: None}
4 年前
回复了 heemayl 创建的主题 » 如何遍历django模型字段,并根据条件添加值

首先是错误: <Model>._meta.get_fields 是方法,而不是属性;因此您需要:

for f in obj._meta.get_fields()[3:]:
# Note the call:             ^^

现在,你的设计似乎不对。你所做的基本上是要求与 Station 模型所以,创建一个 车站 带e.g.a.的模型 name 包含站点名称的字段(以及其他需要的字段)。还要确保你考虑到与 Line 模型清晰;乍一看,对我来说,它看起来像一个多对多。

4 年前
回复了 heemayl 创建的主题 » 简单的python正则表达式不能按预期工作

.*? 非贪婪 也就是说,它将匹配最小的子字符串,您需要 贪婪的 版本,即 .* (匹配最长的子字符串)对于后者:

In [1143]: a = '#232 - Hello There'                                                                                                                                                                         

In [1144]: re.findall('#(.*?) - (.*?)', a)                                                                                                                                                                  
Out[1144]: [('232', '')]

In [1145]: re.findall('#(.*?) - (.*)', a)                                                                                                                                                                   
Out[1145]: [('232', 'Hello There')]

但你应该用 str 处理此类简单案例的方法,例如使用 str.split 打开拆分 - 以下内容:

In [1146]: a.split(' - ')                                                                                                                                                                      
Out[1146]: ['#232', 'Hello There']

str.partition - 切片:

In [1147]: a.partition(' - ')[::2]                                                                                                                                                                          
Out[1147]: ('#232', 'Hello There')