遇到了一个很诡异的错误。写一个字典,存入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. 【blog】推荐一个博客系统后台管理模板 - pinghsu

    pinghsu https://github.com/chakhsu/pinghsu

  2. Excepting a "Mapping" node but got ... Ingnore "Except mapping" in project

    问题 配置端口出现以下问题  问题原因: 解析失败 解决方式: 先将把application.yml 改为 application.properties, 再将端口号文件改为如下格式 解决

  3. (5)Java数据结构--有继承图,用途分析

    java 中几种常用数据结构 - u010947402的博客 - CSDN博客http://blog.csdn.net/u010947402/article/details/51878166 JAVA ...

  4. 如何预览Github上的页面

    参考链接:https://www.jianshu.com/p/46ddd926f005

  5. Aurora 安装

    Aurora安装使用方法: 安装Aurora可以在不安装CTex的情况下使用Latex在word或者ppt中编辑公式,非常方便. (一)安装Micro-Miktex软件.如果安装了CTex中文套件,则 ...

  6. C++基础题--float型以整型格式输出

    int main() { ; a++; printf("%d\n", a); system("pause"); ; } //为什么会输出是0? 解释如下: 在p ...

  7. canves绘制北京地铁线路图,包括线路绘制,优先路线,单路径选择。

    canves绘制北京地铁线路图,包括线路绘制,优先路线,单路径选择. 即将推出,后台涵盖各种语言,php,C#,java,nodejs等.

  8. Elasticsearch 5.4.3实战--Java API调用:搜索

    ES有多种查询方式,我自己的业务是需要对多个字段进行查询,具体实现类代码如下. package com.cs99lzzs.elasticsearch.service.imp; import java. ...

  9. python set 使用

    创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')se ...

  10. LaTeX Error: Something's wrong--perhaps a missing \item

    使用Latex 引用参考文献,.bib文件是个很好的助手,创建后 1.第一步点击Latex编译,可以获得*.aux文件.*.dvi文件.*.log文件以及*.gz文件: 2.第二步点击Bibtex编译 ...