Python3 Dictionary与JSON 您所在的位置:网站首页 javascript读取json Python3 Dictionary与JSON

Python3 Dictionary与JSON

2023-03-20 08:33| 来源: 网络整理| 查看: 265

JSON与Dictionary简介 Python3 PyCharm CE JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是一种文本格式。它的结构主要由键值对来构成。一个键(key)对应一个值(value)。最外围用大括号{ }包围起来。例如1234{ "firstName": "Rust", "lastName": "Fisher"}

大括号括起来的叫做对象结构。

JSON里也可以放数组。用中括号[ ]括起来。叫做数组结构。12345678910111213{ "desc":"这个是一个简单的例子", "userInfo":{ "firstName":"Rust", "lastName":"Fisher" }, "books":[ "Python入门", "Python进阶", "数据分析", "可视化" ]}

对象结构和数组结构可以同时存在,只要满足键值对的要求即可。

最外层也可以是中括号括起来的,里面存放着多个对象。123456789101112131415[ { "firstName": "Tom", "lastName": "Hanks", "movies": ["Cast Away"] }, { "userInfo": { "firstName": "Rust", "lastName": "Fisher" }, "books": ["Python入门", "Python进阶"], "desc": "可以直接添加一个key-value进去" }]

Python的Dictionary(字典)简介

Dictionary(以下简称为dict或字典)是一种键值对数据结构。有点像Java里的Map和Set。

初始化一个dict可以直接用大括号。里面写上key和value。12345678910def use_dict(): user_info = {'firstName': 'Rust', 'lastName': 'Fisher'} books = ['Python入门'] books.append('Python进阶') result = {'userInfo': user_info, 'books': books} result['desc'] = '可以直接添加一个key-value进去' print(result)

# 运行结果# {'userInfo': {'firstName': 'Rust', 'lastName': 'Fisher'}, 'books': ['Python入门', 'Python进阶'], 'desc': '可以直接添加一个key-value进去'}

可以看到,dict和JSON有些类似。都是键值对,都有数组结构。从Python语法上来看,dict操作起来也比较简单。找到确定的key后,可以直接赋值。

Dictionary 转为JSON

Python中的dict是一种键值对的数据结构。JSON是一种轻量级的数据交换格式,它是一种文本格式。它们都是以键值对为基础。那么它们应该能相互转换。

将dict转为JSON,这里利用json包里提供的dumps方法。

dumps方法将传入的dict转换成JSON格式的文本。

引入json包1import json

我们写出了第一个dict转JSON的方法1234def to_json1(input_dict): print('input:', input_dict) jsonTxt = json.dumps(input_dict) print(jsonTxt)

输出:12input: {'userInfo': {'firstName': 'Rust', 'lastName': 'Fisher'}, 'books': ['Python入门', 'Python进阶'], 'desc': '可以直接添加一个key-value进去'}{"userInfo": {"firstName": "Rust", "lastName": "Fisher"}, "books": ["Python\u5165\u95e8", "Python\u8fdb\u9636"], "desc": "\u53ef\u4ee5\u76f4\u63a5\u6dfb\u52a0\u4e00\u4e2akey-value\u8fdb\u53bb"}

中文字符都变成了字母和数字符号。这有点出乎我们意料。

涉及到中文字符的时候,需要dumps方法里指定ensure_ascii=False

1234def to_json2(input_dict): print('input:', input_dict) jsonTxt = json.dumps(input_dict, ensure_ascii=False) print(jsonTxt)

输出:12input: {'userInfo': {'firstName': 'Rust', 'lastName': 'Fisher'}, 'books': ['Python入门', 'Python进阶'], 'desc': '可以直接添加一个key-value进去'}{"userInfo": {"firstName": "Rust", "lastName": "Fisher"}, "books": ["Python入门", "Python进阶"], "desc": "可以直接添加一个key-value进去"}这样中文字符就ok了。

list转为JSON

list中存储着多个dict。可以直接把list转为JSON。

接上面的代码

1234567def list_json_demo(): tom_hanks = {'firstName': 'Tom', 'lastName': 'Hanks', 'movies': ['Cast Away']} info = use_dict() list = [tom_hanks, info] jsonTxt = json.dumps(list, ensure_ascii=False) print(jsonTxt) return jsonTxt

输出的JSON部分:1[{"firstName": "Tom", "lastName": "Hanks", "movies": ["Cast Away"]}, {"userInfo": {"firstName": "Rust", "lastName": "Fisher"}, "books": ["Python入门", "Python进阶"], "desc": "可以直接添加一个key-value进去"}]

读取JSON文本

用json.loads方法将输入的JSON文本转为对象。

123def json_to_dict1(jsonTxt): obj1 = json.loads(jsonTxt) print(obj1)

得到的对象可能是数组或者是dict。

读取JSON文件

先打开文件,用json.load方法,读取JSON内容123with open(json_file_path) as json_file: json_content = json.load(json_file) # 读取出来的是dict # ...



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有