json模块与jsonpath模块

一、json模块

  • json.dumps()
# 将python对象转为json对象
jsonData = json.dumps(dictData)
print(jsonData)
print(type(jsonData))
  • json.dump()
# 将字典(python对象)写入到本地(json对象)
with open('text1.json','w') as f:
    json.dump(dictData,f)
  • json.loads()
# 将json对象转为python对象
dictData1 = json.loads(jsonData)
print(dictData1)
print(type(dictData1))
  • json.load()
# 读取本地的text.json文件 读取到的内容为python对象(字典)
with open('text1.json','rb') as f:
    data = json.load(f)
print(data)
print(type(data))
  • 传统使用
books = json.load(open("./book.json",'r',encoding='utf-8'))
# print(books)
print(books['store']['book'][0]['price'])
# 查找所有的book的价格
b = books['store']['book']
for i in b:
    print(i['price'])

二、jsonpath模块

  • 安装
- pip install jsonpath
  • 基本使用
# 1.导包
  import jsonpath
# 2.基本使用
  # 用jsonpath(类比xpath)
  # /html/body/div
  # 在jsonpath中$代表根节点、“.”代表当前节点的子节点,“..”代表当前节点的后代节点
  ret = jsonpath.jsonpath(books,"$.store.book")
  ret = jsonpath.jsonpath(books,"$.store.book[1]")
  ret = jsonpath.jsonpath(books,"$.store.book[*]")
  ret = jsonpath.jsonpath(books,"$.store.book[*].price") # 要取里面的内容 必须加’*‘
  ret = jsonpath.jsonpath(books,"$..author")
  ret = jsonpath.jsonpath(books,"$..book[:3]") # 如果是列表 可以切片
  print(ret)

你可能感兴趣的:(json模块与jsonpath模块)