网络编程
位置:首页>> 网络编程>> Python编程>> python中的Json模块dumps、dump、loads、load函数用法详解

python中的Json模块dumps、dump、loads、load函数用法详解

作者:Python热爱者  发布时间:2023-11-09 20:01:30 

标签:python,json,dumps,dump,loads,load

json的作用

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式

json.dumps(): 对数据进行编码,把python对象转换为字符串数据
json.loads(): 对数据进行解码,把json的字符串转换为python对象

python中的Json模块dumps、dump、loads、load函数用法详解

python中的Json模块dumps、dump、loads、load函数用法详解

1、json.dumps()和loads()

json.dumps()将dict类型数据转成str。

json.loads()刚好相反,将str类型的数据转成dict。

import json
data= {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"  

# 使用dumps()
str_data = json.dumps(data)
print(str_data)   #输出{"a": "1111", "b": "2222", "c": "3333", "d": "4444"}

# 使用loads()
dict_data = json.loads(str_data)
print(dict_data)  #输出{'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}

2、json.dump()和json.load()

json.dump主要用来文件写入,json.load主要用来文件读取。但是只能写入读取一条数据,多条会报错。

json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文件中。

json.load(f),f是一个文件对象,这个方法可以从文件中读取json数据。

import json
data = {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"  

# 使用dump()写入一行数据
with open(filename, "w") as f:
   json.dump(data,f)

# 使用load()读取一行数据
with open(filename, 'r') as f:
   jsObj = json.load(f)
for key in jsObj.keys():
   print('key: %s value: %s' % (key,jsObj.get(key)))

输出:

key: a value: 1111
key: b value: 2222
key: c value: 3333
key: d value: 4444 

3、如何读取写入多行数据呢?

import json

filename = r"d:\1.json"  
data = [{'a':'1111','b':'2222','c':'3333','d':'4444'},
       {'e':'1111','f':'2222','g':'3333','h':'4444'},
       {'i':'1111','j':'2222','k':'3333','l':'4444'},
       {'m':'1111','n':'2222','o':'3333','p':'4444'}]

#写入多行数据到文件
with open(filename,'w') as f:
   for i in range(len(data)):
       f.write(json.dumps(data[i])+'\n')  #一定要换行

#从文件读取多行数据,并转化为list
with open(filename,'r') as f:
   jsObj=[json.loads(line) for line in f]
print(jsObj)

来源:https://blog.csdn.net/qdPython/article/details/123923738

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com