python3 + vscode 搭建及代码示例


开发中常用到 python 写一些简单的脚本,长时间不用每次都要查语法、库函数用法比较费时。

这里记录安装配置环境及一些常用代码,下次直接 copy 方便。

安装、配置环境

Mac 一般自带 python 2.7,需要自己安装 python3,推荐安装 pyenv 管理 python 版本,pyenv 可以随意切换全局 python 版本,不用自己到处改环境变量

# 使用 homebrew 安装 pyenv
brew install pyenv

# 配置 pyenv 环境
    # for bash
    echo 'export PYENV_ROOT="HOME/.pyenv"' >> ~/.bash_profile
    echo 'command -v pyenv >/dev/null || export PATH="PYENV_ROOT/bin:PATH"' >> ~/.bash_profile
    echo 'eval "(pyenv init -)"' >> ~/.bash_profile

    # for zsh
    echo 'export PYENV_ROOT="HOME/.pyenv"' >> ~/.zshrc
    echo 'command -v pyenv >/dev/null || export PATH="PYENV_ROOT/bin:PATH"' >> ~/.zshrc
    echo 'eval "(pyenv init -)"' >> ~/.zshrc

# 重置终端,让环境生效
exec "$SHELL"

# 列出可用 python 版本
pyenv install -l
# 安装指定版本 python
pyenv install 3.5.10
# 指定全局版本(pip、包仓库会跟着切)
pyenv global 3.5.10

# 安装需要的库,如 requests
pip install requests

最后在 vscode 安装 python 扩展,vscode 右下角可以切换 python 版本

示例网络请求代码

推荐 vscode 扩展 curlconverter,可以直接将从 Chrome 复制出来的 curl 转为对应语言的代码

# -*- coding: utf-8 -*-   # python 默认编码格式 ascii, 不加这行没法写中文,注释都不行
import requests
import json
import sys
reload(sys)
sys.setdefaultencoding('utf-8')       
# 以上3行由于 python 默认传输编码是 ascii,当遇到中文等字符时会报错(例如调用print),
# 要么每次手动编码字符串(调用 encode('utf-8'))
# 要么通过修改默认编码来适配(推荐)

cookies = {
    'ticket': 'xxx'
    }

headers = {
    'Accept': 'application/json',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'Content-Type': 'application/json'
    }

data = '{"appName":"xxx"}'

response = requests.post('http://', headers=headers, cookies=cookies, data=data)
# 以上 request 根据 curl 通过 curlconverter 扩展转换而来

# json.loads() 将str类型的数据转换为 dict 类型
dict_obj = json.loads(response.content)

# 从字典中获取需要转换的字段  
respData = dict_obj["data"]

# 将 python 对象(列表字典等都可以)转换成json字符串,由于前面已经 setdefaultencoding() 兼容中文,这里的 encode 可以不需要
# jsonStr = json.dumps(name, ensure_ascii=False).encode('utf-8')

# 打印语言默认编码
# print(sys.getdefaultencoding())
# 打印系统配置的编码
# print(sys.getfilesystemencoding())

for item in respData["items"]:
    if "keyA" not in item:            # in/not in 判断 dict 中存在/不存在对应key,python 直接获取不存在的key会报错
        print(1)
    elif item["keyA"] != objA:        # python == 比较对象内容,is 比较对象地址
        print(3)

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top