python在内存中的字典数据如何逐个写入本地文件中?

萌新请教下:python如何将内存中字典数据逐个追加到json文件中的列表之中,不是一次性将列表写入json。如图:
image.png

实际情况:就是我在爬取网站信息时,每次得到的数据是字典类型的复合数据,并且在代码中是存放在列表list中的。但是担心爬取到中间出现问题而导致数据未能及时持久化(不考虑放置于数据库中),前功尽弃。所以想找个实现的代码方式,将每得到的字典数据都追加到json文件的列表中。
代码状态:

def write_detail_json(self,path):
    fp = open(path,mode="w+",encoding="utf-8")
    return fp # 返回文件句柄
detail_list = []
fp = self.write_detail_json(path="./config/nmix_res.json") # 拿到文件句柄
for item in doc(".hd a").items():
    detail_url = item.attr("href")
    detail_item = self.get_detail(detail_url) # 获取到每个网页的信息,并置于字典中
    # 此处需要将字典数据添加到本地文件json的列表中,求大佬帮忙
    detail_list.append(detail_item) # 将字典信息组合成列表
return detail_list

感谢各位大佬解惑,谢谢!

阅读 3.4k
1 个回答

dict与json的相互转换

import json

def dict_to_json():
    dict = {}
    dict['name'] = 'many'
    dict['age'] = 10
    dict['sex'] = 'male'
    print(dict)  # 输出:{'name': 'many', 'age': 10, 'sex': 'male'}
    j = json.dumps(dict)
    print(j)  # 输出:{"name": "many", "age": 10, "sex": "male"}

def json_to_dict():
    j = '{"id": "007", "name": "007", "age": 28, "sex": "male", "phone": "13000000000", "email": "123@qq.com"}'
    dict = json.loads(s=j)
    print(dict)  # {'id': '007', 'name': '007', 'age': 28, 'sex': 'male', 'phone': '13000000000', 'email': '123@qq.com'}

json的load()与dump()方法的使用

import json

def dict_to_json_file():
    dict = {}
    dict['name'] = 'many'
    dict['age'] = 10
    dict['sex'] = 'male'
    print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
    with open('1.json', 'w') as f:
        json.dump(dict, f)  # 会在目录下生成一个1.json的文件,文件内容是dict数据转成的json数据

def json_file_to_dict():
    with open('1.json', 'r') as f:
        dict = json.load(fp=f)
        print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题