打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python 操作 JSON 的 9 个示例

Json(JavaScript Object Notation 的缩写)是一种数据交换格式,最常用于客户端-服务器通信;当然你也可以将它保存到本地,所以也可以用来作为配置文件;Json 很像 Python 中的字典,下面就让我们来一起学习如何用 Python 来操作 Json


01 将字典转化为 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)

02 访问 JSON 中的key2的值

输入:

data = {"key1":"value1","key2":"value2"}

输出:

value2

示例代码:

import json

sampleJson = """{"key1": "value1", "key2": "value2"}"""

# 我们用到了json库的loads方法
data = json.loads(sampleJson)
print(data['key2'])

03 将 Json 格式化后输出

输入:

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)

04 将 Json 按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")


05 访问 Json 的嵌套对象,并输出 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'])

06 将类对象转化为 Json

输入:

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)

07 将 Json 转化为类对象

输入:

{ "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)

08 判断 Json 格式是否正确

输入:

{
   "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)

09 获取 JSON 中keyname的所有值

输入:

[
   {
      "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,包括读取和写入;大家都学会了吗?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Golang 语言中 map 有哪些陷阱?
php中json_encode UTF-8中文乱码的解决方法
第三方库jsonCpp与libJson的配置和使用
json格式的字符串序列化和反序列化的一些高级用法
JQGRID 基本用法及示例、换肤等
PHP中数组转换成json字符串
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服