Python开发小技巧

这篇具有很好参考价值的文章主要介绍了Python开发小技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python开发简洁小技巧

同时遍历两个列表

同时遍历两个列表,比如as = ["张三", "李四", "王五"],bs = ["zhangsan", "lisi", "wangwu"],往往对应列表顺序元素有对应关系,使用zip:


for a, b in zip(as, bs):
    print(a, b)  # 张三 zhangsan ...

笛卡尔积遍历

同时遍历列表构造全部组合,比如as = ["a", "b"],bs = ["1", "2"],我们希望得到的结果是a,1和a,2和b,1和b,2(笛卡尔积),使用product(引入itertools这个SDK):


from itertools import product

for a, b in product(as, bs):
    print(a, b)  # a 1 ...

字节型变字符串

有些缓存管道或消息队列存入数据会传入传出字节的形式,但后续往往都会用字符串的形式,就需要字节型无损失地变为字符串,decode可以解决这个问题。


bytes = b'012345'
str = bytes.decode('UTF-8')  # byte不能直接转str,可以转int再转str,那么会导致前面的0无了

Django直接使用SQL操作

其实就是原生python用pymysql(python3版本,也兼容python2,也就是python2中的mysql-python)操作mysql,不想用ORM操作queryset或涉及复杂的SQL操作,就可以用。(不过要避免SQL注入问题)


from django.db import connection  # 使用事务的话导入 transaction
cursor = connection.cursor()  # 连接

# cursor.execute(SQL语句),类似↓,不过要避免SQL注入问题,可以把int转string再转int这种
cursor.execute("SELECT name from USER where id like '%s'" % id)

# fetchone() 获取一条记录
# fetchall() 获取全部记录
result = cursor.fetchone()

列表初始化用0占位

有时python中是需要预先占位,来进行更新操作的,而Python中又没有数组这种明确的数据类型,一般用list代替


# 定义一个预长度10,占位为0的列表
list1 = [0 for i in range(10)]
# 还有运行更快且更简洁的方法 ↓
list2 = [0] * 10

针对post请求带参数--data-urlencode的情况处理

curl --request POST 'http://xxx' --data-urlencode 'data={"xxx1":xxx2}'


headers = {'Content-Type': 'application/x-www-form-urlencoded'}
body = {"xxx1":xxx2}
try:
    ret = requests.post(url, data=body, headers=headers)
    if ret.status_code == 200:
        data = json.loads(ret.text)  
    else:
        logger.error(ret.text)  # 将错误内容信息一次带出
        raise Exception
    return data
except Exception as err:
    logger.error("error:{}".format(err))

但往往我们更多使用的是JSON格式的传输,类似于↓:文章来源地址https://www.toymoban.com/news/detail-409292.html


params = {"xxx1":xxx2}
headers = {'content-type': 'application/json'}
response = requests.post(url, json=params, headers=headers)

到了这里,关于Python开发小技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫开发入门及开发技巧大全

    get方法 post方法 这在某些情况下比较有用, 比如IP被封了,或者比如IP访问的次数受到限制等等。 是的没错,如果想同时用代理和cookie, 那就加入proxy_support然后operner改为 ,如下: 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。 这时候我们需要伪装成浏览器, 这可以

    2023年04月15日
    浏览(27)
  • Python开发小技巧

    Python开发简洁小技巧 同时遍历两个列表 同时遍历两个列表,比如as = [\\\"张三\\\", \\\"李四\\\", \\\"王五\\\"],bs = [\\\"zhangsan\\\", \\\"lisi\\\", \\\"wangwu\\\"],往往对应列表顺序元素有对应关系,使用zip: 笛卡尔积遍历 同时遍历列表构造全部组合,比如as = [\\\"a\\\", \\\"b\\\"],bs = [\\\"1\\\", \\\"2\\\"],我们希望得到的结果是a,1和a

    2023年04月10日
    浏览(24)
  • 【python】基础开发技巧

    目录 闭包 基础代码  nonlocal 装饰器 基础代码  语法糖写法 设计模式 单例模式 工厂模式 多线程、进程 探究互斥锁对多线程速度的影响 网络通信编程 服务端开发 客户端开发 正则(RE) 递归 递归遍历文件 一:闭包的定义: 目的:保证变量不会因为外部函数调用而销毁。 1:

    2023年04月08日
    浏览(27)
  • Python Web开发技巧VIII

    目录 ModelSerializer和Serializer区别是什么 从queryset中取出某个models的字段值 Q对象进行模糊匹配 HTTP方式-如何模糊搜索JSON字段中的某个KEY值呢? showmigrations 合并两个或多个queryset         都是DRF中用于序列化和反序列化数据的组件。主要区别在于: ModelSerializer 是针对Django模

    2024年02月15日
    浏览(23)
  • Python Web开发技巧VII

    目录 装饰器inject_serializer 装饰器@atomic rebase git 清理add的数据 查看git的当前工作目录 makemigrations文件名称 @action(detail=True, methods=[\\\"GET\\\"]) 如何只取序列化器的一个字段进行返回 Response和JsonResponse有什么区别 序列化器填表和单字段如何写 序列化器里包含多对象数据-序列化器嵌套

    2024年02月15日
    浏览(34)
  • Python 开发工具 Pycharm —— 使用技巧Lv.2

    pydoc 是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构 本文主要介绍:1.查看文档的方法、2.html文档说明、3.注释方法、 **方法1:**启动本地服务,在web上查看文档 命令【python3 -m pydoc -p 1234】 通过http://localhost:1234来访问查看文档 说明: 1、-p指定启动

    2024年02月14日
    浏览(32)
  • Python 开发工具 Pycharm —— 使用技巧Lv.1

    Basic code completion Ctrl+空格 is available in the search field when you search for text in the current file Ctrl+F, so there is no need to type the entire string 基本代码完成Ctrl +空格可在搜索领域当你搜索文本在当前文件Ctrl + F,所以没有必要整个字符串类型 To make your printouts (File | Print) nice and informative, use

    2024年02月14日
    浏览(30)
  • Python 开发工具 Pycharm —— 使用技巧Lv.3

    1: 鼠标左键单击红点是断点行 2:甲虫样式是进行调试方式运行,鼠标左键单击点击 3: 单步运行图标,点击让程序运行一行 4: 步入步出,可以进入当前代码行函数内 5:重新运行,修改之后或者运行完成后想要再次运行 点此再次运行

    2024年02月13日
    浏览(27)
  • Python开发工具PyCharm使用技巧——键盘快捷键指南

    JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。 PyCharm有大多数与编辑、导航、重构、调试和其他任务相关命令的键盘快捷键,记住这些快捷键可以帮助

    2024年04月09日
    浏览(64)
  • 字节跳动面试题目大数据计算引擎:impala对比hive,Python开发自学技巧

    数据流: 内存使用: 调度: 容错: 适用面: Impala相对于Hive所使用的优化技术 Impala的优缺点 Impala****与Hive的异同 ====================== 数据存储 使用相同的存储数据池都支持把数据储于HDFS, HBase。 元数据 两者使用相同的元数据。 SQL解释处理 比较相似都是通过词法分析生成执

    2024年04月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包