python遇到的部分错误及解决方案

1 如果出现在命令行执行后报错: ModuleNotFoundError: No module named 'create_chart'

那么在要运行的代码开头加入下面的话

import sys
sys.path.append('..')

2 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5

这类报错是说你再使用中文,目标位置的编译方式可能是 gbk ,也可能是UTF-8,而编译器 Encoding 的方式是gbk或UTF-8之类的,但二者不匹配,所以你需要修改成合适的编译方式,使之尽量一致!

3 TypeError: Object of type date is not JSON serializable

类型不对,表示不是JSON序列应该有的类型,也就是说不是字符串,因此,可以加入str,使其正确!

4 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 16: illegal multibyte sequence

只需要在open函数参数中添加“encoding=‘utf-8’

5 Navicat上数据库如何找序列

在Navicat上选中数据库,然后点击其他--选择序列可以找到

6 数据库上的序列和视图是干什么的?

序列作为代理主键,唯一识别;用于记录数据库中最新动作的语句,只要语句有动作(I/U/D等),sequence号都会随着更新,所以我们可以根据sequence号来select出更新的语句。

7 error: src refspec master does not match any.

错误:SRC ReFSPEC主控器不匹配任何。
错误:未能将某些引用推到'git @ Github.com:HaHaa/ftpMal.git’
也就是仓库为空。
因此,执行以下:
git add 文件
git commit -m "注释"
git remote add origin xxx.git
git push -u origin master
注意:git push -u origin master这条命令执行后,以后可以直接使用不带参数的git pull/push,
其中,-u是 --set-upstream 它将会合并默认的那条分支。
下次直接用:
git pull/push

8 python中 future 库是干什么的?

python中 __future__ 库是用来导入之后版本的函数的

9 json.decoder.JSONDecodeError: Expecting value: line 30 column 18 (char 711)

json文件缺少逗号

10 为什么bat文件手动执行可以运行,但是任务计划程序却无法正确打开

在bat文件中缺少cd到指定目录的操作

11 TypeError: Object of type date is not JSON serializable

json.dumps()不能对date时间格式数据进行转化
只要把他转化为str格式就可以了

12 python日期按月份相加减

import datetime
from dateutil.relativedelta import relativedelta

datetime_now = datetime.datetime.now()
datetime_three_month_ago = datetime_now - relativedelta(months=3)
print (datetime_three_month_ago)

13 TypeError: can only concatenate str (not "NoneType") to str

空值无法进行类型转换

14 microsoft .net framework异常

我删除了docker,当然可能有更好的解决办法!

15 Linux 运行py文件报错:Error while finding module specification for 'xxx.py' (ModuleNotFoundError: path attribute not found on 'xxx' while trying to find 'xxxx.py')

要么把"-m"删除,要么删除".py"后缀,问题就迎刃而解了

16 python中PyV8库导入不了

试下这个网址 https://code.google.com/archive/p/pyv8/downloads 如果不行,把https的s删掉!

17 爬虫时,参数是payload形式,爬取异常

requests.post(url=url, headers=headers, data=json.dumps(form_data), timeout=60)使用这种方式爬取

18 爬虫解析url的时候,python2使用urllib.urlencode(formdata),那么,在python3中使用什么?

python3中使用urllib.parse.urlencode(formdata)

19 爬虫时面对cookie如何处理?

import execjs
# 使用这个库,直接用python执行js代码

20 使用execjs过程中报错如下: execjs._exceptions.ProgramError: ReferenceError: window is not defined

windows没有定义,则定义windows或删掉这部分

21 如何在scrapy框架中设置爬取的间隔时间?

DOWNLOAD_DELAY = 0.25 # 250 ms of delay 这是设置的固定延时时间
如果想进一步降低被封ip的风险,需要使用随机延时

写一个random_delay_middleware.py文件,如下:
# -*- coding:utf-8 -*-

import logging
import random
import time


class RandomDelayMiddleware(object):
  def __init__(self, delay):
      self.delay = delay

  @classmethod
  def from_crawler(cls, crawler):
      delay = crawler.spider.settings.get("RANDOM_DELAY", 10)
      if not isinstance(delay, int):
          raise ValueError("RANDOM_DELAY need a int")
      return cls(delay)

  def process_request(self, request, spider):
      delay = random.randint(0, self.delay)
      logging.debug("### random delay: %s s ###" % delay)
      time.sleep(delay)
       
custom_settings = {
      "RANDOM_DELAY": 3,
      "DOWNLOADER_MIDDLEWARES": {
          "middlewares.random_delay_middleware.RandomDelayMiddleware": 999,
      }
  }
#这是随机整数延时,更好的方法是改一下,让他随机小数延时
 
posted @ 2022-08-11 09:22  peanut321  阅读(573)  评论(0)    收藏  举报