(scrapy也适用)如何把多个字典变成一个json文件(超详细)

需求:如何把多个字典变成一个json文件(scrapy也适用)

需求:== 我的数据是一个字典一条数据,我有多个数据(就是多个字典)然后我要变成一个json文件==

1.简单测试:应该能解决很多人的问题

我用三个字典模拟多条数据,存入json

#如何把字典数据变成json数据

all_list = []#把数据保存到列表,然后结束的时候一次性写入json文件

item = {'name':'小陈'}#第一条数据
all_list.append(item)

item = {'name':'小周'}#第二条数据
all_list.append(item)

item = {'name':'小伟'}#第三条数据
all_list.append(item)

print(all_list)

然后输出的结果:(其实答案已经出来了)

[{'name': '小陈'}, {'name': '小周'}, {'name': '小伟'}]

我顺便拓展一下json格式:(来自百度百科)
在这里插入图片描述
然后继续之前的:就是把这个数据

[{'name': '小陈'}, {'name': '小周'}, {'name': '小伟'}]

直接保存到json文件

1.打开一个文件

json_file = open('data.json','w',encoding='utf-8')

2.提前把存数据的列表数据转成适合把数据保存到json的格式

list_json = json.dumps(all_list,ensure_ascii=False)

3.把第二步的数据写到第一步的文件中

json_file.write(list_json)

然后查看结果数据
在这里插入图片描述
然后进行检验
在这里插入图片描述

完成源码:

测试源码:

#如何把字典数据变成json数据

all_list = []#把数据保存到列表,然后结束的时候一次性写入json文件

item = {'name':'小陈'}#第一条数据
all_list.append(item)#存到列表

item = {'name':'小周'}#第二条数据
all_list.append(item)#存到列表

item = {'name':'小伟'}#第三条数据
all_list.append(item)#存到列表
import json #必须导入哈
json_file = open('data.json','w',encoding='utf-8')
list_json = json.dumps(all_list,ensure_ascii=False)
json_file.write(list_json)

scrapy.pipline把数据保存json方法
熟悉scrapy的人适用。。。

import json

class DemoXpath_json_Pipeline:
    def __init__(self):
        self.json_file = open('data.json', mode='w+', encoding='UTF-8')
    def open_spider(self,spider):
        self.list = []
    def process_item(self, item, spider):
        self.list.append(dict(item))
        return item
    def close_spider(self,spider):
        list_json = json.dumps(self.list,ensure_ascii=False)
        self.json_file.write(list_json)
        self.json_file.close()

还有一种面向对象写法,其实也不是很难,就是多了一些初始化参数,看心情写了

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懂.py的小陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值