python 使用json包在json格式字符串和python对象之间的变化

起因:使用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 rand
        else:
            self.memery[rand] = 0
            return 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”:“小明”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马搏士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值