Python之第二十六天的努力--sys、json模块

01 sys模块

  1. sys.argv[] :

    # 获取命令行方式运行的脚本后面的参数
    print("脚本名:",sys.argv[0])                    # 脚本名
    print("第一个参数:",sys.argv[1])                 # 第一个参数
    print("第二个参数:",sys.argv[2])                 # 第二个参数
    

    image-20200701193622210

    arg1 = int(sys.argv[1])
    arg2 = int(sys.argv[2])
    print(arg1 + arg2)
    

    image-20200701193757210

  2. sys.path :

    # 解释器寻找模块的路径
    # sys.path
    
  3. sys.modules :

    # 已经加装的模块
    print(sys.modules)
    

02 json模块

JavaScript Object Notation:java脚本兑现标记语言。

已经成为一种简单的数据交换格式。

  1. 序列化:将内存中的数据,转换成字节串、保存在文件或通过网络传输,称为序列化过程。

  2. 反序列化:从文件中、网络中获取的数据,转换成内存中原来的数据类型,称为反序列化过程。

  3. 把指定的对象转换成json格式的字符串: json.dumps()

    # 把指定的对象转换成json格式的字符串
    s1 = json.dumps([1,2,3])
    # print(type(s1))
    print(s1)                # '[1,2,3]'
    
    # 元祖序列换后变成列表
    s2 = json.dumps((1,2,3))
    print(s2)                   # [1, 2, 3]
    
    #
    res = json.dumps({'name':'zs','age':18})
    print(res)                      # '{"name": "zs", "age": 18}'
    
    # set不可以序列化
    res2 = json.dumps(set('abc'))
    print(res2)                     # 报错
    
  4. 将json结果写到文件中: json.dump()

    # 将json结果写到文件中
    with open('a.txt',encoding='utf-8',mode='at') as f:
        json.dump([1,2,3],f)
    
  5. 反序列化过程: json.loads()

    # 反序列化
    res = json.dumps([1,2,3])
    lst = json.loads(res)
    print(type(lst))            # <class 'list'>
    print(lst)                  # [1, 2, 3]
    
    # 元组反序列化,会变成列表
    res = json.dumps((1,2,3))
    lst = json.loads(res)
    print(type(lst))            # <class 'list'>
    print(lst)                  # [1, 2, 3]
    
  6. 从文件中反序列化: json.load()

    # 从文件中反序列化
    with open('a.txt',encoding='utf-8') as f:
        res = json.load(f)
        print(type(res))        # <class 'list'>
        print(res)              # [1, 2, 3]
    
  7. 实现多次写

    # 把需要序列化的对象,通过多次序列化的方式,用文件的write方法,把多次序列化后的json字符串
    # 写入到文件中
    with open('json.txt',encoding='utf-8',mode='at') as f1:
        f1.write(json.dumps([1,2,3]) + '\n')
        f1.write(json.dumps([4,5,6]) + '\n')
    
  8. 多次反序列化

    # 把分次序列化的json字符串,反序列化回来
    with open('json.txt',encoding='utf-8',mode='rt') as f2:
        # res1 = json.loads(f2.readline().strip())
        # res2 = json.loads(f2.readline().strip())
        # print(res1)
        # print(res2)
    
        for line in f2:
            print(json.loads(line.strip()))
    
posted @ 2020-07-01 20:56  ET-珩  阅读(81)  评论(0)    收藏  举报