【python】json模块

本文介绍了如何使用Python的json模块实现对象序列化和反序列化,展示了如何将数据转化为JSON格式进行跨语言、跨系统传输,包括了复杂数据结构的处理和文件操作

序列化

将程序内对象转化为二进制数据——序列化Serialize
将二进制数据转化为程序内对象——反序列化Deserialize

在文件系统保存或者传输到网络上,我们都需要将其转化为二进制数据。

JSON数据格式

在这里插入图片描述
我们可以用python将数据转化为一个json格式的二进制数据从windows传输到linux上,然后用c++读取linux上的数据,举这个例子是为了说明json可以跨语言跨系统。

在这里插入图片描述

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import json


# In[2]:


d = {
    "symbol":"BTCUSDT",
    "exhcange":"OKEX",
    "interval":"1m",
    "close":3800
}


# In[4]:


print(type(d),d)


# In[5]:


# 序列化
# dump的意思是将内存中的对象加载为二进制数据,s是string的意思,就是说转化后的数据是一个str
data_str = json.dumps(d)
print(type(data_str),data_str)


# In[8]:


# 写入文件
with open("json_demo.txt","w") as f:
    f.write(data_str)


# In[9]:


# {"symbol": "BTCUSDT", "exhcange": "OKEX", "interval": "1m", "close": 3800}


# In[10]:


# 读取文件,反序列化
with open("json_demo.txt","r") as f:
    line = f.read()
    print(line)
    data = json.loads(line)
    print(type(data),data)


# In[11]:


# 复杂结构
temp = {
    "str":"hello",
    "int":1,
    "float":0.5,
    "bool":True,
    "dict":{
        "demo":"test"
    },
    "list":[1,2,3]
}

with open("json_demo2.txt","w") as f:
    json.dump(temp,f,indent=4)
    # indent 写进数据的缩进


# In[12]:


# {
#     "str": "hello",
#     "int": 1,
#     "float": 0.5,
#     "bool": true,
#     "dict": {
#         "demo": "test"
#     },
#     "list": [
#         1,
#         2,
#         3
#     ]
# }


# In[16]:


with open("json_demo2.txt","r") as f:
    res = json.load(f)
    print(type(res),res)

# <class 'dict'> {'str': 'hello', 'int': 1, 'float': 0.5, 'bool': True, 'dict': {'demo': 'test'}, 'list': [1, 2, 3]}

在这里插入图片描述

### 回答1: 好的,你想了解关于Python中的json模块的一些信息,对吧? json模块Python标准库中的一个模块,用于解析和生成JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。 使用json模块,可以将Python对象(如字典、列表等)与JSON数据格式进行相互换。具体来说,可以使用json.dumps()函数将Python对象换为JSON格式的字符串,使用json.loads()函数将JSON格式的字符串换为Python对象。 下面是一个简单的示例代码,演示了如何使用json模块Python对象换为JSON格式的字符串,并将JSON格式的字符串换为Python对象: ```python import json # 将Python对象换为JSON格式的字符串 data = {"name": "Alice", "age": 30} json_str = json.dumps(data) print(json_str) # 输出: {"name": "Alice", "age": 30} # 将JSON格式的字符串换为Python对象 data2 = json.loads(json_str) print(data2) # 输出: {'name': 'Alice', 'age': 30} ``` 希望这个简要的介绍能够帮助你更好地了解Python中的json模块。 ### 回答2: Pythonjson模块是用来处理JSON数据的模块JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将数据从一个系统传递到另一个系统。 通过json模块,我们可以将Python的数据结构(如字典、列表)换为JSON格式的字符串,并且可以将JSON格式的字符串换为Python的数据结构。json模块提供了loads()函数和dumps()函数来完成这两种换。 loads()函数可以将JSON格式的字符串换为Python的数据结构。例如,将'{"name": "Amy", "age": 18}'这样的JSON字符串换为一个字典{'name': 'Amy', 'age': 18}'。 dumps()函数可以将Python的数据结构换为JSON格式的字符串。例如,将字典{'name': 'Amy', 'age': 18}'换为'{"name": "Amy", "age": 18}'这样的JSON字符串。 除了基本的换功能,json模块还提供了其他一些功能,如处理JSON中的null值、将JSON数据写入文件、从文件读取JSON数据等。 总之,json模块Python中起着重要的作用,它可以方便地将Python的数据结构与JSON格式进行互相换,使得数据在不同系统之间的传递更加便捷。 ### 回答3: Pythonjson模块是用来处理JSON(JavaScript Object Notation)数据的模块JSON是一种常用的数据格式,它以键值对的形式表示数据,并且易于阅读和解析。 json模块提供了一些函数和方法,用于将Python对象换为JSON格式的字符串,并且可以将JSON字符串换回Python对象。它还可以简化与JSON数据的交互,使得读取、写入和解析JSON数据变得更加方便。 使用json模块,可以对JSON数据进行以下操作: 1. 序列化:将Python对象换为JSON字符串。可以使用`json.dumps()`函数来实现。例如,将字典对象换为JSON字符串:`json.dumps({'name': 'John', 'age': 25})`。 2. 反序列化:将JSON字符串换回Python对象。可以使用`json.loads()`函数来实现。例如,将JSON字符串换为字典对象:`json.loads('{"name": "John", "age": 25}')`。 3. 读取JSON文件:可以使用`json.load()`函数从JSON文件中读取数据,并将其换为Python对象。 4. 写入JSON文件:可以使用`json.dump()`函数将Python对象写入JSON文件中。 json模块还提供了其他一些功能,如处理嵌套JSON数据、处理特殊数据类型(如日期、日期时间等)以及自定义编码和解码规则等。 总之,Pythonjson模块提供了一种方便和灵活的方式来处理JSON数据。无论是将Python对象序列化为JSON字符串,还是将JSON字符串反序列化为Python对象,json模块都是一个十分实用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m 宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值