zoukankan      html  css  js  c++  java
  • python模块之json

    json的意义:

    1. 把你的内存数据通过网络共享给远程其他人
    2. 定义了不同语言之间的交互规则
    3. 简单、可读性好。纯文本不能共享复杂的数据类型,xml空间大。

    代码示例:

    import json
    
    
    data = {
    
        'roles': [
            {'role': 'monster', 'type': 'pig', 'life': 50},
            {'role': 'hero', 'type': '关羽', 'life': 80},
        ]
    }
    
    # dump & dumps
    
    with open('test.json', 'w') as f:
        d = json.dump(data, f)  # dump不止转换成字符串,还能存到文件里,后面需要写文件对象
    
    d = json.dumps(data)  # 仅仅转成字符串
    
    # load & loads
    
    d2 = json.loads(d)
    print(d2['roles'])  # 把字符串转成相应的字符类型
    
    with open('test.json', 'r') as f:
        data = json.load(f)
    
    print(data)  # 加载对象需要是文件
    
    
    # dump多次
    
    d = {'name': 'alex', 'age': 22}
    l = [1, 2, 3, 4, 'rain']
    with open('json_file', 'w', encoding='utf-8') as f:
        json.dump(d, f)
        json.dump(l, f)
    
    # load 多次
    
    with open('json_file', 'r', encoding='utf-8') as f:
        json.load(f)  # json.decoder.JSONDecodeError: Extra data: line 1 column 28 (char 27)
    
    # 结论:为了避免各种问题,python3里面的load不支持dump了多次的文件,虽然python2支持,但是也不建议dump多次,因为容易出问题,比如忘记了自己dump了多少次
  • 相关阅读:
    CSAcademy Or Problem
    BZOJ 4516 [Sdoi2016] 生成魔咒
    SPOJ7258 SUBLEX
    SPOJ1812 LCS2
    SPOJ1811 LCS
    SPOJ8222 NSUBSTR
    洛谷3804 【模板】后缀自动机
    SPOJ287 NETADMIN
    SPOJ1693 COCONUTS
    BZOJ5329 SDOI2018 战略游戏
  • 原文地址:https://www.cnblogs.com/lshedward/p/10003356.html
Copyright © 2011-2022 走看看