Json(JavaScript Object Notation 的缩写)是一种数据交换格式,最常用于客户端-服务器通信;当然你也可以将它保存到本地,所以也可以用来作为配置文件;Json 很像 Python 中的字典,下面就让我们来一起学习如何用 Python 来操作 Json
data = {"key1":"value1","key2":"value2"}
data = {"key1":"value1","key2":"value2"}
有什么不一样吗?其实它们是很相似的
import json
data = {"key1" : "value1", "key2" : "value2"}
# 我们用到了json库的dumps方法,将Python对象转化为Json对象
jsonData = json.dumps(data)
print(jsonData)
key2
的值data = {"key1":"value1","key2":"value2"}
value2
import json
sampleJson = """{"key1": "value1", "key2": "value2"}"""
# 我们用到了json库的loads方法
data = json.loads(sampleJson)
print(data['key2'])
sampleJson = {"key1": "value1", "key2": "value2"}
{
"key1" = "value2",
"key2" = "value2",
"key3" = "value3"
}
import json
sampleJson = {"key1" : "value2", "key2" : "value2", "key3" : "value3"}
prettyPrintedJson = json.dumps(sampleJson, indent=2, separators=(",", " = "))
print(prettyPrintedJson)
key
排序后保存输出到文件中sampleJson = {"id" : 1, "name" : "value2", "age" : 29}
{
"age": 29,
"id": 1,
"name": "value2"
}
import json
sampleJson = {"id" : 1, "name" : "value2", "age" : 29}
print("Started writing JSON data into a file")
with open("sampleJson.json", "w") as write_file:
json.dump(sampleJson, write_file, indent=4, sort_keys=True)
print("Done writing JSON data into a file")
salary
的值sampleJson = """{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000,
"bonus":800
}
}
}
}"""
7000
import json
sampleJson = """{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000,
"bonus":800
}
}
}
}"""
data = json.loads(sampleJson)
print(data['company']['employee']['payble']['salary'])
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
vehicle = Vehicle("Toyota Rav4", "2.5L", 32000)
{
"name": "Toyota Rav4",
"engine": "2.5L",
"price": 32000
}
import json
from json import JSONEncoder
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
class VehicleEncoder(JSONEncoder):
def default(self, o):
return o.__dict__
vehicle = Vehicle("Toyota Rav4", "2.5L", 32000)
print("Encode Vehicle Object into JSON")
vehicleJson = json.dumps(vehicle, indent=4, cls=VehicleEncoder)
print(vehicleJson)
{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }
vehicleObj.name, vehicleObj.engine, vehicleObj.price
import json
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
def vehicleDecoder(obj):
return Vehicle(obj['name'], obj['engine'], obj['price'])
vehicleObj = json.loads('{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }',
object_hook=vehicleDecoder)
print("Type of decoded object from JSON Data")
print(type(vehicleObj))
print("Vehicle Details")
print(vehicleObj.name, vehicleObj.engine, vehicleObj.price)
{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000
"bonus":800
}
}
}
}
Given JSON string is Valid False
即格式错误
import json
def validateJSON(jsonData):
try:
json.loads(jsonData)
except ValueError as err:
return False
return True
InvalidJsonData = """{ "company":{ "employee":{ "name":"emma", "payble":{ "salary":7000 "bonus":800} } } }"""
isValid = validateJSON(InvalidJsonData)
print("Given JSON string is Valid", isValid)
key
为name
的所有值[
{
"id":1,
"name":"name1",
"color":[
"red",
"green"
]
},
{
"id":2,
"name":"name2",
"color":[
"pink",
"yellow"
]
}
]
["name1", "name2"]
import json
sampleJson = """[
{
"id":1,
"name":"name1",
"color":[
"red",
"green"
]
},
{
"id":2,
"name":"name2",
"color":[
"pink",
"yellow"
]
}
]"""
data = []
try:
data = json.loads(sampleJson)
except Exception as e:
print(e)
dataList = [item.get('name') for item in data]
print(dataList)
今天的教程,主要学习了:如何使用Python操作Json,包括读取和写入;大家都学会了吗?
联系客服