python中的字典结构 与 json格式的异同

python 中的 dict 和 json非常类似

JSON

javaScript Object Notation, lightweight data-interchange format, language-neutral 

json的本质是满足某种特定格式的字符串,本质是字符串!

摘自JSON官方解释:

JSON is built on two structures:

1. A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.

2. An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.

我的理解是,JSON是独立于语言的,在不同的语言里,它可以化身为object, record, struct, dictionary等等。也就是说,字典结构(dict),其实就是json在python里的化身。

一个正确的json长这样:

{

    "employees":  {

           "firstName": "Bill",

            "lastName": "Gates"  

    }

}

dict 结构

一种数据结构,自带很多函数,而json是数据打包的一种格式,并不像字典具备操作性。

一个dict长这样:

student = {

             "name": "jess",

             "country": "China",

             "age": 100

}

JSON和dict互相转换-- json.dumps(),json. loads()

参考 python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分 - 小明在线 - 博客园

以及python官方文档里对JSON模块的介绍 json — JSON encoder and decoder — Python 3.7.2 documentation

首先,要在python文件里 import json

1. json.dumps(dict): 将字典转化为字符串, 由于json的本质是字符串,所以这个函数实现的是 字典->JSON

2. json. loads(str): 字符串转字典,也可理解为 JSON->字典


RequestHandler.write(chunk)

将给定的chunk(块)作为HTTP body 发送给客户端。在一般情况下,此函数输出字符串给客户端,如果给定的chunk是字典,则以json发送给客户端。同时,在write函数之前要将Content_Type设置为application/json,注意以下几点

1. chunk只能是二进制、字典或者字符串,不能把字符串和字典用“+”连在一起放在一个chunk里,比如write("this is a dict" + 某个字典结构)是不行的(我试过了发现的这个问题)

2. content type设置在write函数前,其实设不设置都不影响页面显示的内容,只不过如果不设置,HTTP header里的content type就是text/html,设置完了是这样


python中的字典结构 与 json格式的异同

代码如下


python中的字典结构 与 json格式的异同

可以看到,JSON和字典结构,在长相上完全一样啊。