zoukankan      html  css  js  c++  java
  • json的结果,这坑终于被我挖出来了

    事情的起因我就不说了,总之是一个json惹的祸。以前也发生了这样的问题,但是我没有在意,以为是我疏忽了,今天才发现,原来你是这样的json!

    呐,其实很简单,随便几行代码就能说清楚:

    import json
    dic = {1: "apple", 2: "banana", 3: "cat"}
    dump_dic = json.dumps(dic)
    print(json.loads(dump_dic))

    就是简单地把一个字典dumps再loads,结果应该跟原来的dic是一样的吧。以前我就是这样认为的。

    结果,loads出来的结果是这样的:

    {'1': 'apple', '2': 'banana', '3': 'cat'}

    看出问题了没?如果没看出来,我们再来仔细对比一下:

    之前: {1: "apple", 2: "banana", 3: "cat"}
    之后: {'1': 'apple', '2': 'banana', '3': 'cat'}

    没错!loads之后,字典中的key从整型变成了字符串!

    可能是json的定义相对简单吧,拿来用用就上手了,我从来没有注意过这一点。之后我又试了试,发现在对原字典dumps的过程中,key就变成了字符串(但是value不会变,还是数字)。

    跟同事说了一下这个问题,同事说,用一些在线的json格式检查工具试试就知道了,json格式的key不允许是数字。

    好吧,我傻了。也许是python在dumps的时候不会严格检查吧。

    本文原创自博客园文章,想了解python相关技巧,欢迎到我的博客踩踩~ 地址:http://www.cnblogs.com/anpengapple/
  • 相关阅读:
    【浏览器】谷歌浏览器快捷键
    【问题】html页面不能自动更新,重启项目也不行。package时可以。
    Hibernate与mybatis的区别
    ssh的执行流畅
    ssm执行流程
    struts的上传下载
    HTML列表
    什么是HTML,HTML的简介,HTML结构
    hadoop hdfs 分布式存储
    面向对象的七大原则
  • 原文地址:https://www.cnblogs.com/anpengapple/p/14310254.html
Copyright © 2011-2022 走看看