正如标题,json格式是一种字符串,而这种字符串可以通过load()或loads()函数,转换成python的数据格式:字典、列表、字符串、整形、浮点型。 同样python特定的数据形式也可以通过dump()和dumps()函数来转换成对应的json字符串。在json字符串中多个数据之间使用逗号分开。注意:json本质上就是一个字符串,因为在最外边字符串使用单引号表示,所以里面的字符串就都要用双引号来表示。
dumps(): 将json字符串转换成对应的python数据
dump(): 将json字符串转换成对应的python数据,并写入文件,dumps()的第一个参数为json字符串,第二个参数为文件指针(句柄)
组合python数据类型dumps成json:
import json
books = [
{
'title': '钢铁是怎样练成的',
'price': 9.8
},
{
'title': '红楼梦',
'price': 9.9
}
]
#因为json在dump的时候,只能存放ascii的字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False关闭这个特性。
json_str = json.dumps(books,ensure_ascii=False) #ensure_ascii设成false,否则中文写成字节串格式
print(json_str)
loads():将JSON字符串转换成Python对象
load():从文件中将JSON字符串读出并且将其转换成Python对象,load()的第一个参数为JSON字符串,第二个参数为文件指针(句柄)
将一个json字符串loads成Python对象:
json_str = '[{"title": "钢铁是怎样练成的", "price": 9.8}, {"title": "红楼梦", "price": 9.9}]'
books = json.loads(json_str,encoding='utf-8')
print(type(books))
print(books)
load()、dump()与文件指针联系紧密
loads()、dumps()多与json字符串联系紧密
由于json是一个字符串,当要提取其中的某些数据的时候,对于字符串并不方便,将其转换成python对象,如列表,字典的时候,就相对容易获取其中的具体信息。
在Python
中。只有基本数据类型才能转换成JSON
格式的字符串。也即:int
、float
、str
、list
、dict
、tuple,像集合就不能转化成JSON格式。