python将字典内容写入json文件的方法:我们可以先使用json.dumps()函数将字典转换为字符串;然后再将内容写入json即可。json.dumps()函数负责对数据进行编码。
字典内容写入json时,需要用json.dumps将字典转换为字符串,然后再写入。
json也支持格式,通过参数indent可以设置缩进,如果不设置的话,则保存下来会是一行。
无缩进
json_str = json.dumps(test_dict)
with open('test_data.json', 'w') as json_file:
json_file.write(json_str)
有缩进版本
json_str = json.dumps(test_dict, indent=4)
with open('test_data.json', 'w') as json_file:
json_file.write(json_str)
json使用方法
在python中使用json主要有四个方法(json故格式的数据使用的一定是双引号):
1、dumps()#将python对象转化为json字符串
import json
data={'name':'徐雨杰','age':20}
f=json.dumps(data)
print(f)
结果:
{“name”: “\u5f90\u96e8\u6770”, “age”: 20}
2、loads()#将json字符串转化为python对象
import json
data={'name':'徐雨杰','age':20}
f=json.dumps(data)
print(f)
f1=json.loads(f)
print(f1)
3、dump()#将python内置类型序列转化为json对象后写入文件
import json
data={'name':'徐雨杰','age':20}
with open("js.txt","w") as f:
#可以直接命名为后缀值.json的文件
json.dump(data,f)
f.close()
运行该程序之后在当前目录下会有相应的文件
4、load()#读取文件中json形式的字符串元素转化为python类型
import json
with open("js.json","r") as f:
print(json.load(f))
f.close()
python json dumps()参数
dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw)
skipkeys:默认为false,如果为true只能传入字典
ensure_ascii:确定是否为ASCII编码
indent:会以美观的方式来打印,实现缩进
enconding:默认为utf-8
sort_keys:如果为字典,选择true的话,会按照键的ASCII来排序
其他的形式差不多。
————————————————
原文链接:https://blog.csdn.net/qq_45911550/article/details/110704742
json数据格式
json的数据格式有2种,分别是:
对象(object):用大括号{}表示;
在json中对象用“键-值”(key:value)方式配对存储,对象内容以“{”开始,以“}”结束,键与值之间以“:”隔开,每组键值对间以逗号“,”隔开。
键(key)必须是字符串类型;
值(value)可以是数值(number)、字符串(string)、布尔值(bool)、数组(array)或null值。
json格式中,字符串需用双引号,json文件内不能使用注释
如:{“Name”: “Tom”, “Age”: 18}
数组(array):用中括号[]表示。
数组由一些列的值(value)组成,以“[”开始,以“]”结束,各个值之间以逗号“,”隔开。
数组的值可以是数值(number)、字符串(string)、布尔值(bool)、数组(array)或null值。
在Python中,json以字符串(string)方式存在。
将python数据转成json格式
python与json数据类型对照:
dict --> object
list,tuple --> array
str,unicode --> string
int,float,long --> number
True --> true
False --> false
None --> null
将列表与元组数据转成json数组
import json # 导入json模块
# 1.将列表与元组数据转成json数组
listNumbers = [1, 3, 5, 7, 9] # 列表数据
tupleNumbers = [2, 4, 6, 8, 10] # 元组数据
jsonData1 = json.dumps(listNumbers) # 将列表数据转成json数据
jsonData2 = json.dumps(tupleNumbers) # 将元组数据转成json数据
print(f'列表转json数组:{jsonData1}')
print(f'元组转json数组:{jsonData2}')
print(type(jsonData1))
print(type(jsonData2))
# 列表转json数组:[1, 3, 5, 7, 9]
# 元组转json数组:[2, 4, 6, 8, 10]
# <class 'str'>
# <class 'str'>
将字典元素组成的列表转成json对象
import json # 导入json模块
# 2.将字典元素组成的列表转成json对象
dict_list = [
{'Name': 'Tom', 'Age': 19, 'City': 'New York'},
{'Name': 'Jack', 'Age': 23, 'City': 'London'},
{'Name': 'Mike', 'Age': 25, 'City': 'Tokyo'}
]
json_data = json.dumps(dict_list) # 将列表数据转成json数据
print(json_data)
print(type(json_data))
# [{"Name": "Tom", "Age": 19, "City": "New York"}, {"Name": "Jack", "Age": 23, "City": "London"}, {"Name": "Mike", "Age": 25, "City": "Tokyo"}]
# <class 'str'>
将json格式数据转成python数据
json模块中的loads()方法可以将json格式数据转成python数据。
json数据类型与python数据类型对照:
object --> dict
array --> list
string --> unicode
number(int) --> int,long
Number(real) --> float
true --> True
false --> False
num --> None
import json
# json数据
json_data = '{"Name": "Jack", "Age": 25, "Gender": "Male"}'
dict_data = json.loads(json_data) # 转成python对象
print(dict_data)
print(type(dict_data))
# {'Name': 'Jack', 'Age': 25, 'Gender': 'Male'}
# <class 'dict'>
json官网:https://www.json.org/json-en.html