码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-06-20 11:20:02      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:end   内存地址   原因   出现   不能   epc   import   起点   rate   

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

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) #有中文时候加上

 

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

标签:end   内存地址   原因   出现   不能   epc   import   起点   rate   

原文地址:https://www.cnblogs.com/whcp855/p/13152765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!