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

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

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

python">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

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


回答:

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'}

以上是 python在内存中的字典数据如何逐个写入本地文件中? 的全部内容, 来源链接: utcz.com/p/937773.html

回到顶部