• 踩坑d8:列表中添加字典、 读写同一个exce的sheet页


    在往列表中添加字典时若使用为键赋值的方式,则会出现前面的字典数据被最后一条字典数据覆盖。

    l = []
    data = {}
    for i in range(1, 3):
    data['url'] = i + 1
    data['method'] = i + 2
    l.append(data)
    print(l)


    #[{'url': 3, 'method': 4}, {'url': 3, 'method': 4}]

    原因:列表的append方法在为其添加数据的时候并没有将完整的字典数据都拷贝的列表当中(为了提高空间的使用率),而是存储字典数据所在地址,而以上字典修改的是同一个内存地址下的数据,内存地址id没变

    解决办法:每次为列表添加数据的时候,在内存中其他位置创建与该字典相同的数据并加入列表(若字典内包含列表,需要使用deepcopy)
    l = []
    data = {}
    for i in range(1, 3):
    data['url'] = i + 1
    data['method'] = i + 2
    l.append(data.copy())
    print(l)

    #[{'url': 2, 'method': 3}, {'url': 3, 'method': 4}]

    ###  xlrd读excel是从(0,0)开始

    ### load_workbook可以读写操作同一个excel,,是从(1,1)为起点    #坑

    from openpyxl import load_workbook

    def write_operate(self,path,sheetname,nrow,ncol,info):
    self.path = path
    target_book = load_workbook(path)
    sheetname = target_book.active
    sheetname.cell(nrow,ncol,info)
    target_book.save(path)

     json.loads 用于解码 JSON 数据    json.dumps,将 Python 对象编码成 JSON 字符串

    ## json.json.loads(data),data内必须使用双引号,不能使用单引号 ##坑

    ##json.json.dumps(pythonobj,ensure_ascii=False) #有中文时候加上

  • 相关阅读:
    iOS开发-类簇(Class Cluster)
    算法-有向图及可达性
    算法-无向图(连通分量,是否有环和二分图)
    算法-无向图(深度优先搜索和广度优先搜索)
    算法-无向图
    算法-散列表
    Red-Gate.NET.Reflector.v8.0.1.308(内含注册机Keygen与注册图解)
    [转]c#快捷键
    Windows常用性能计数器总结
    [转]C#程序性能优化
  • 原文地址:https://www.cnblogs.com/whcp855/p/13152765.html
Copyright © 2020-2023  润新知