常用问题库(1)

 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

posted on 2018-03-17 19:43  透过代码看世界  阅读(477)  评论(1编辑  收藏  举报

导航