1.返回一个SelectorList 对象
2.返回一个list(就是系统自带的那个) 里面是一些你提取的内容
3.返回2中list的第一个元素(如果list为空抛出异常)
4.返回1中SelectorList里的第一个元素(如果list为空抛出异常),和3达成的效果一致
5.返回的是一个str(如果Python2为unicode应该), 所以5会返回str的第一个字符
用法:contains
//span[contains(@class,'vote-post-up')]
如,上述就是判断span标签中的class是否包含vote-post-up值,如果包含就返回该标签在网页中的位置,有了这个位置之后你在确定后面是取值,还是仍要进一步的往下定位。
列表拼接问题:报错TypeError: can only join an iterable
string = 'daibahgk'
li = list(string) # 将字符串转换为列表['d', 'a', 'i', 'b', 'a', 'h', 'g', 'k']
s = li.sort() # 对列表里的字母进行排序
new_string = "".join(s)
解决:报错原因是join括号里需要一个可迭代的值,s是列表怎么不可迭代呢?用print函数将s打印一下,发现s的值是None。问题出在sort()这里。查询有关sort资料,原来sort只对列表本身排序,它没有返回值。将一个空的值赋给s,那么s是None就不出奇了。将代码改为如下,就可以运行
string = 'daibahgk'
li = list(string) # 将字符串转换为列表['d', 'a', 'i', 'b', 'a', 'h', 'g', 'k']
li.sort() # 对列表里的字母进行排序
new_string = "".join(li)
在python中存在继承了 回车符\r 和 换行符\n两种标记,如果只是去除\n,并不会起效果,需要replace('\n', '').replace('\r', '')配合使用
去除\u3000 使用 str.replace(u'\u3000',u' ')
去除空格replace(" ","")
去除\x20 str = "".join(str.split())
校验当前的list项是不是空字符串
sentence_list = []
for i in tem_sentence_list:
if i.strip() !='':
sentence_list.append(i)
问题描述:
使用celery分布式时出现 (not “NoneType”) to str
TypeError: can only concatenate str (not "NoneType") to str
原因分析:
result='' #用于结果返回给redis存储0号库
for li in lis:
print(li.get("alt"))
result+=li.get("alt")
return result
结果返回过程中意外取得一个None 使得与空值相加
解决方案:
在解析后过滤空值。
import pandas as pd
# 假设数据存储在一个名为df的数据框中
df.to_csv('data.csv', sep=',', encoding='utf-8', index=False)
其中,to_csv()
方法的参数说明如下:
'data.csv'
:要保存的CSV文件的文件名。sep=','
:CSV文件中的字段分隔符,默认为逗号。encoding='utf-8'
:CSV文件的编码格式,默认为UTF-8。index=False
:是否要在CSV文件中包含行号,默认为True
,这里设置为False
,不包含行号。
报错
UnboundLocalError: local variable 'article_title' referenced before assignment
这个错误是因为在函数内部使用了一个局部变量,但是在使用之前没有进行赋值。解决这个错误的方法是在函数内部对变量进行初始化或者赋值操作,以确保在使用之前已经存在了对应的值。 以下是一个示例代码,可以帮助你更好地理解如何解决这个错误:
def get_article_title():
article_title = None # 初始化article_title
try:
# 这里是获取文章标题的代码,如果获取成功则将article_title赋值
article_title = "这里是文章标题"
except Exception as e:
print("获取文章标题出错:", e)
return article_title # 返回article_title
# 测试函数
print(get_article_title())
在上面的示例代码中,我们首先在函数内部初始化了一个名为article_title
的变量,并将其赋值为None
,即使在获取文章标题的过程中出现了异常,该变量也有一个默认值。在获取文章标题的代码中,如果获取成功,则将article_title
的值更新为文章标题。最后,我们返回article_title
的值。这样就可以避免在使用局部变量之前没有进行赋值的情况,避免出现UnboundLocalError
错误。