开发中常用到 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)