python 配置文件处理实战-json

注:以后决定把所有笔记都写在这里。本来觉得拿博客当笔记本太麻烦,现在想想我可以先每篇都开个坑,等用多了再慢慢更新,挺好的。

1 简介

json库是python内置的处理json文件的模块,可以很方便的处理和写入json
(原来代码块可以指定语言呀,哈哈!)

import json

2 用法

  • json.dump 与 json.dumps
    json.dump(dic,filestream) 把字典变成json格式且存入文件,传入打开的写文件流即可
    json.dumps(dic)只是把字典对象转换成了json对象,如果要写入文件需要手动文件IO
# json.dump
filename=open("config.json","w",encoding="utf-8")
dic={
    
    "yanggen":{
    
    "price":"100","num":"2"}}
json.dump(dic,filename)
# json.dumps
dic={
    
    "yanggen":{
    
    "price":"100","num":"2"}}
json_object=json.dumps(dic,ensure_ascii=False,indent=5)
  • json.load 与 json.loads
    和dump相同,json.loads() 处理的是已经读入的json字符串,将它转成字典以使用python的字典操作函数
    json.load(filestream)则可以直接从打开的读文件流中读取json文件,返回字典对象
#json.loads
filename=open("a.txt",encoding="utf-8")
str=filename.read() 
dic=json.loads(str)  
#json.load
filename=open("a.txt",encoding="utf-8")
dic=json.load(filename) 

3 错误解析

TypeError: the JSON object must be str, bytes or bytearray, not ‘dict’

使用json.loads(response.json())时出现此错误

movie_page = requests.get(movie_url, headers=self.headers)
movie_dict = json.loads(movie_page.json())

原因是requests爬下来再使用json(),已经是一个字典了,此时直接用字典相关的语法就可以了,无需再用json.loads()转换

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

使用json.load(s)()时报错,通常原因是最后多了一个逗号

猜你喜欢

转载自blog.csdn.net/weixin_44602409/article/details/107281176