起因:使用python json包时,将键值对均为数字的字典存入txt文件后重新加载进字典后出现“字典key值不唯一”的神奇现象。
相关代码:
字典添加数据部分
def xuhao_chuti(self):rand = random.randint(1, 908)if rand in self.memery.keys() and self.memery[rand] >=2:return self.xuhao_chuti()elif rand in self.memery.keys() :return randelse:self.memery[rand] = 0return rand
字典重新加载部分
def in_chuti_jilu(self):self.memery = dict()try:f= open(self.output_chutijilu_file,'r',encoding='utf-8')self.memery = json.load(f)f.close()print('加载了出题记录:',len(self.memery))except Exception as e:print('出错了:',e)
经过查找资料后得出结论:
字典在调用json.dumps()时,将字典原本key值为数字,转换为了字符串类型,再次导入为字典后,key值也就是字符串类型了,再进行key值存在判断时,就出现了已有‘100’的key值,但还是添加了100的key值,再次调用json.dumps()时,文件就出现了键值一样的情况。
json格式标准
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
例如:“name”:“小明”