json之Python简述

一、json是什么

1、JSON(JavaScript Object Notation, JS对象标记)是一种轻量级的数据格式,其数据格式简单,读写方便易懂。
2、许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。
3、json 数据格式(是字符串类型):
——对象格式(类似于字典字符串):'{key1: value1, key2: value2, key3: value3}',key必须为字符串,value不做规定
——数组/集合格式(类似于列表字符串):'[dict1, dict2, dict3]',dict必须为字典

二、json有两点规定

1、JSON语言中规定了字符集必须是UTF-8
2、为了统一解析,规定JSON的字符串必须由双引号 " " 界定

三、json格式数据和Python类型的转化

import json

# 1、dumps():将dict类型的数据转化成json格式(str类型)

#——(1)数据中存在中文,加上ensure_ascii=False参数即可显示中文,否则乱码:
dict1 = {'name': "小明", 'age': 18, 'skills': 'python', 'english': 'CET6', 'major': '会计', "address": "深圳", 666: 999}
dict2 = json.dumps(dict1)
dict3 = json.dumps(dict1, ensure_ascii=False)
print(dict1)
print(dict2)
print(dict3)

#——(2)字典转化成json格式后,原字典中的单引号会全部变成双引号,没有引号的键也会加上双引号:

#——(3)对json格式数据通过缩进符美观(多行)输出,使用indent参数:
dict4 = json.dumps(dict1, ensure_ascii=False, indent=2)
dict5 = json.dumps(dict1, ensure_ascii=False, indent=5)
print(dict4)
print(dict5)

#——(4)通过设置sort_keys=True,结果按键进行排序:
dict6 = json.dumps(dict1, ensure_ascii=False, indent=4, sort_keys=True)
print(dict6)

#——(5)使用separators参数来设置键值对之间的分隔符,和键与值之间的分隔符:
dict7 = json.dumps(dict1, ensure_ascii=False, indent=4, separators=("——","@"))    
print(dict7)

# 2、dump():将dict类型的数据转化成json格式后写入json文件
with open(r".\test.json", "w", encoding="utf-8") as f:
    # json.dump(dic, f) # 全部写入一行数据,不换行
    json.dump(dict1, f, indent=2, sort_keys=True, ensure_ascii=False)

# 3、loads():将json格式的数据转化成dict类型,其结果引号全部变为单引号

# 4、load():读取json文件数据,转成dict类型
with open("./test.json", encoding="utf-8") as f:
    json_to_dict = json.load(f)
print(json_to_dict)

# 5、元组转化:
data = (1, 2, 3, 4)
data1 = json.dumps(data)
print(data1)

# 6、列表转化:
data = [1, 2, 3, 4]
data2 = json.dumps(data)
print(data2)

# 7、布尔值转化:
data = True
data3 = json.dumps(data)
print(data3)

# 8、数值型数据转化:
data = 5
data4 = json.dumps(data)
print(data4)

四、利用 Demjson 来解析

# Demjson是Python的第三方库,能够用于编码和解码json格式数据,存在py2和py3兼容性问题:
import demjson

#——(1)encode:将 Python 对象编码成 JSON 字符串
data = ["ser",34]
data5 = demjson.encode(data)

#——(2)decode:将已编码的 JSON 字符串解码为 Python 对象
data6 = demjson.decode(data5)        # 想看到中文eval(data6)

五、Pandas处理 json

# read_json:从json文件中读取数据

# to_json:将pandas中的数据写入到json文件中

# json_normalize:对json数据进行规范化处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的`json`模块中,常用的解析JSON的四个函数是: 1. `json.loads()`:将JSON字符串解析为Python对象。它接受一个JSON格式的字符串作为参数,并返回对应的Python对象,可以是字典、列表等。 2. `json.load()`:从文件中读取JSON并解析为Python对象。它接受一个文件对象作为参数,并将文件中的JSON内容解析为对应的Python对象。 3. `json.dumps()`:将Python对象转换为JSON格式的字符串。它接受一个Python对象作为参数,并返回对应的JSON格式的字符串。 4. `json.dump()`:将Python对象转换为JSON格式,并写入到文件中。它接受一个Python对象和一个文件对象作为参数,将Python对象转换为JSON格式后写入到文件中。 这四个函数可以帮助我们在Python中进行JSON数据的解析和生成。举个例子,假设有一个JSON字符串如下: ```python import json json_str = '{"name": "John", "age": 30, "city": "New York"}' ``` 我们可以使用`json.loads()`函数将其解析为Python对象: ```python data = json.loads(json_str) print(data) # 输出 {'name': 'John', 'age': 30, 'city': 'New York'} ``` 同样地,我们也可以使用`json.dumps()`函数将Python对象转换为JSON字符串: ```python data = {'name': 'John', 'age': 30, 'city': 'New York'} json_str = json.dumps(data) print(json_str) # 输出 '{"name": "John", "age": 30, "city": "New York"}' ``` 这样,我们就可以方便地在Python中操作JSON数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值