1.JSON模块(数据交互)
JSON全名是JavaScript Object Notation(即:JavaScript对象标记) 它是JavaScript字面量标记的子集。
前端和后端进行数据交互,其实就是JS和Python进行数据交互
JSON注意事项:
名称必须用双引号(即:””)来包括
值可以是双引号包括的字符串、数字、true、false、null、JavaScript数组,或子对象。
JSON模块API
接口一:json.dumps(obj) # 将obj这个对象,变成JSON字符串
接口二:json.loads(s) # 将s这个JSON字符串,转换成Python的数据类型
接口三:json.dump #dump 写入文件
接口四:json.load #load 从文件中读取
import os import json data={ 'name':'Tuple', 'age':18, 'list':[1,2,3], 'tuple':(2,3,4), 'True':True, 'False':False, 'None':None } #dumps 将对象转换成JSON json_data=json.dumps(data) print(type(json_data)) print(json_data)
执行结果:
<class 'str'>
{"tuple": [2, 3, 4], "False": false, "True": true, "age": 18, "None": null, "name": "Tuple", "list": [1, 2, 3]}
#loads将JSON转换成对象 py_dict=json.loads(json_data) print(type(py_dict)) print(py_dict)
执行结果:
<class 'dict'>
{'tuple': [2, 3, 4], 'True': True, 'age': 18, 'None': None, 'False': False, 'name': 'Tuple', 'list': [1, 2, 3]}
#dump 写入文件 with open('test-3.py','w') as fp: json.dump(data,fp) #load 从文件中读取 with open('test-3.py','r') as fp: py_dict=json.load(fp) print(py_dict)
执行结果:
{'tuple': [2, 3, 4], 'True': True, 'age': 18, 'None': None, 'False': False, 'name': 'Tuple', 'list': [1, 2, 3]}
2.OS模块(文件、目录和路径操作)
os模块的目录及文件操作
os.path模块 的路径操作
操作实例:
import os import datetime pwd=os.getcwd() #pwd print(type(pwd),pwd) os.chdir('..') # os.rmdir('litao') print(os.getcwd()) content=os.listdir() print(type(content),content) print(os.path.isdir('/home/pyvip/.bashrc')) print(os.path.isfile('/home/pyvip/.bashrc')) print(os.path.isfile(os.path.join(os.getcwd(),'.bashrc'))) print(os.path.join(os.getcwd(),'.bashrc')) print('----------') print(os.path.join('/home/','pyvip','py_case')) #想知道文件所在的文件夹,所在的文件夹 #所在目录、父机目录 pwd=os.getcwd() print(pwd) print(os.path.dirname(pwd)) print(os.path.dirname('/home/pyvip/py_case')) #基本短路径 print(os.path.basename('/home/pyvip/py_case/test.py')) #当前目录下的py_case 下面的‘test.py’,这个文件的绝对路径 os.path.abspath('py_case/test-4.py') #规范化路径 print(os.path.normpath('/home/pyvip/../pyvip')) print('#####') print(os.path.getsize('/home/pyvip/py_case/test.py')) print(datetime.datetime.fromtimestamp(os.path.getctime('/home/pyvip/py_case/test.py'))) #判断文件是否存在 print(os.path.exists('/home/pyvip/test')) #遍历一个目录,输出其中所有的文件(包括子目录下的文件) #os 一些文件及目录的操作。os.path 一些路径的操作 #先列一层,把这一层所有的都输出出来,如果其中有文件夹,再重复同样的事情(递归) def list_all(path): print(path)#把文件夹输出 for sth in os.listdir(path): #得到一个目录下所有文件或目录的名字或列表 abs_path=os.path.join(path,sth) if os.path.isdir(abs_path): list_all(abs_path) else: print(abs_path) list_all('/home/pyvip/py_case')
运行结果:
ssh://pyvip@127.0.0.1:1234/home/pyvip/.virtualenvs/py3env/bin/python -u /home/pyvip/py_case/test-4.py <class 'str'> /home/pyvip/py_case /home/pyvip <class 'list'> ['config', '.vimrc', '.bashrc', 'py_case', '.bash_logout', '.sudo_as_admin_successful', '.vimconfig', '.Private', '.virtualenvs', '.vim', '.pycharm_helpers', 'aaa', '.cache', '.bash_history', 'install.sh', '.ecryptfs', '.profile', '.mysql_history', '.viminfo'] False True True /home/pyvip/.bashrc ---------- /home/pyvip/py_case /home/pyvip /home /home/pyvip test.py /home/pyvip ##### 562 2018-03-17 19:34:23.959038 False /home/pyvip/py_case /home/pyvip/py_case/test-3.py /home/pyvip/py_case/test-4.py /home/pyvip/py_case/base-64 /home/pyvip/py_case/base-64/images.html /home/pyvip/py_case/base-64/ttt.py /home/pyvip/py_case/base-64/aaa.png /home/pyvip/py_case/base-64/xxx.jpg /home/pyvip/py_case/test.py /home/pyvip/py_case/test-2.py