需求:如何把多个字典变成一个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()
还有一种面向对象写法,其实也不是很难,就是多了一些初始化参数,看心情写了