python在内存中的字典数据如何逐个写入本地文件中?
萌新请教下:python如何将内存中字典数据逐个追加到json文件中的列表之中,不是一次性将列表写入json。如图:
实际情况:就是我在爬取网站信息时,每次得到的数据是字典类型的复合数据,并且在代码中是存放在列表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 jsondef 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 jsondef 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