Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Simplejson奇怪的行为_Python_Json_Simplejson - Fatal编程技术网

Python Simplejson奇怪的行为

Python Simplejson奇怪的行为,python,json,simplejson,Python,Json,Simplejson,所以在python中,我用JSON结构制作了一个字典 >>> a = {"name":'nikhil',"age":25} 现在,我使用 . 我知道它是有效的 现在我做到了: >>> b = simplejson.dumps(a) >>> b= '{"age": 25, "name": "nikhil"}' 现在我做到了: >>> c = simplejson.loads(b) >>> c = {'ag

所以在python中,我用JSON结构制作了一个字典

>>> a = {"name":'nikhil',"age":25}
现在,我使用 . 我知道它是有效的

现在我做到了:

>>> b = simplejson.dumps(a)
>>> b= '{"age": 25, "name": "nikhil"}'
现在我做到了:

>>> c = simplejson.loads(b)
>>> c = {'age': 25, 'name': 'nikhil'}
现在,我检查
c
是否是一个有效的JSON错误


为什么Simplejson不能将JSON字符串转换回有效的JSON?当我开始只使用一个有效的JSON时?

您在这里混淆了JSON和Python
b
是JSON格式的字符串,
c
是Python对象

Python语法恰好在这方面与JSON(JavaScript)非常相似

  • Python字符串可以使用
    ,具体取决于内容;JSON总是使用
    。您输入了
    a
    ,使用双引号表示键,单引号表示一个字符串值;如果您要求Python为您回显它,您会发现它只显示单引号

  • Python布尔值是
    True
    False
    ,JSON使用
    True
    False

  • JSON的“空”值是
    null
    ,Python使用
    None


有关如何映射json和Python对象的概述,请参见
json
模块的第页。

我不明白
c
根本不是JSON,它是Python字典。另外,你在最后做的是
c={'age':25,'name':'nikhil'}
,这基本上使你所有的转换都毫无意义。是的,但是为什么在
c
中删除双引号并添加单引号呢。当我在
a
中以双引号开头时。在JSON中,键应始终使用双引号。