python学习笔记(三)

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错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值