• 常用问题库(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
  • 相关阅读:
    html 输入框 只能输入数字 只能输入字母数字 等组合
    element中table高度自适应问题
    设置千分位问题(改变数据结构形式--转成字符串)
    在element的table接受数据设置千分位问题(不改变数据类型)
    element在使用tab页时,echarts只在第一个页面加载(第二个tab页也在默认tab页显示)问题
    css1
    B/S(Web)实时通讯解决方案
    WebRTC介绍及简单应用
    webpack的编译流程
    01 写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b 的时间,然后写一个 myClear,停止上面的 mySetInterVal
  • 原文地址:https://www.cnblogs.com/taoge188/p/8592213.html
Copyright © 2020-2023  润新知