遇到了一个很诡异的错误。写一个字典,存入json文件。之后读出判断是否存在key。结果惊奇的发现,同一个key居然存在两次。

原因:json会将数值key转换为unicode

结论:使用json时字典key不可为数值!

复现问题:

>>> a = {}
>>> a[1] = 1
>>> b = json.dumps(a)
>>> c = json.loads(b)
>>> a
{1: 1}
>>> c
{u'': 1}
>>> c[1] = 1
>>> c
{u'': 1, 1: 1}
>>> d = json.dumps(c)
>>> d
'{"1": 1, "1": 1}'

对比a和c可以看到,数值型的key被转成了unicode,之后再写入数值型key的时候被当成了一个新的key

【python】json中字典key不可为数值型的更多相关文章

  1. JSON 中的 key

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  2. json中获取key值

    <script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={ ...

  3. JS 遍历JSON中每个key值

    JS 遍历JSON中的每个key值,可以按键值对进行存储: var myVar = { typeA: { option1: "one", option2: "two&qu ...

  4. FastJson 对json中的KEY值的大小写转换方法

    /** * json大写转小写 * * @return JSONObject */ public static JSONObject transToLowerObject(String json) { ...

  5. Python基本语法_基本数据类型_数值型详解

    目录 目录 软件环境 Python变量调用的过程 数值型 删除一个数值类型对象 布尔型 Bool 标准整型 Int 长整型 双精度浮点型 Float 复数 数值类型对象的内建功能函数 absNumbe ...

  6. Python json 序列号字典 文本的存储和读取

    rootDir='./resources/v1/'# 根目录 # 按钮测试图片 btnTestPicUrl = { 'armyAttack' : rootDir+'testPic/gj2.jpg', ...

  7. 在js中把json中的 key去掉双引号的方法

    方法一: //数据格式是这样的: var data = '[{"id":30348079,"name":"表1","score&q ...

  8. python json中的 dumps loads函数

    一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行js ...

  9. python json与字典对象互相转换

    改文章转自:https://www.cnblogs.com/Lin-Yi/p/7640147.html 1 import requests 2 import json 3 ''' 4 json.loa ...

随机推荐

  1. python网络编程初识

    一,什么是计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和 [1]  信 ...

  2. mybatis执行批量更新数据

    1.业务需求:同时执行多记录批量操作 2.实现方法:     1)mapping: 2) dao 层 3)Service 层(注意要使用Transactional,否则可能会导致数据紊乱) 4)Con ...

  3. maven(一) 一 修改仓库存放路径

    一.修改仓库存放路径 maven默认的仓库是在C盘下的,这样当重新装系统的时候,仓库就要重新建了.因此可以修改默认存放的位置. 修改仓库的地址在maven安装包(即apache-maven-bin)下 ...

  4. 2017-2018-2 20165234 实验三 《Java面向对象程序设计》实验报告

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http://www.cnblogs. ...

  5. dubbo源码分析6——SPI机制中的AOP

    在 ExtensionLoader 类的loadFile方法中有下图的这段代码: 类如现在这个ExtensionLoader中的type 是Protocol.class,也就是SPI接口的实现类中Xx ...

  6. Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明【转】

    转自:https://blog.csdn.net/qq1452008/article/details/50855810 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  7. better-scroll和swiper使用中的坑

    better-scroll  1.我的 better-scroll 初始化了, 但是没法滚动. 按照文档使用后,发现可以原生滚动,但是不能弹性滑动,后面发现是最外层容器没给设置固定高度   ,设置固定 ...

  8. MATLAB GUI对话框设计

    原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...

  9. 004_zookeeper运维之maxClientCnxns overflow

    一. 线上默认设置:maxClientCnxns=120   #可通过修改这个值来进行解决 二. 在10.103.110.51这个ip上执行以下命令,进行查看连接情况 [root@10.103.101 ...

  10. web@css普通布局 , 高级布局 , 布局坑

    1.高级布局<文档流概念>:页面从上至下,块式标签一行一行排列,内联式一行中从左至右排列<BFC规则>:左右位置(左右margin)垂直位置(上下margin)容器内外(互不影 ...