如何通过Python将JSON格式文件导入redis?
摘要:如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务。
本文分享自华为云社区《Python将JSON格式文件导入 redis,多种方法》,作者: 梦想橡皮擦 。
在导入前需要先确定你已经安装 Redis,并且可以启动相关服务。
windows 上启动 redis 的命令是 redis-server.exe redis.windows.conf,效果图如下:

使用 Python 连接 redis
如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务,实现步骤如下所示。
安装 redis 与 导入
安装 redis 库
pip install redis
导入 redis 库
import redis
使用代码连接 Redis
通过 redis 库的 Redis 类连接 Redis 服务器。
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
print(r)
连接到本地 Redis 服务器,并使用默认端口 6379,连接到数据库 0,这里建议使用 redis desktop 工具同步进行连接测试。

写入键值
连接成功后,可以使用 Redis 的命令来操作数据,例如设置键值对:
import redis
r = redis.Redis(host='localhost', port=6379, db=15)
r.set('name', '梦想橡皮擦')
print(r)
可以在可视化工具中查看到数据已经写入。

获取键值
r.get('name')
基础准备好,接下来就将 JSON 文件一次性的写入到 redis 中。
操作 JSON 文件写入 redis
首先使用 json.load() 方法读取 JSON 文件,首先看一下 JSON 文件内容。

JSON 最外层是一个列表,其中每一个元素都是对象,我们需要将每个对象都插入到 redis 中,形成 使 Redis 的哈希表。
完整代码如下所示:
import redis
import json
r = redis.Redis(host='localhost', port=6379, db=15)
with open('travel.json', 'r',encoding='utf-8') as file:
data = json.load(file)
for item in data:
r.lpush('travel', json.dumps(item))
先看一下插入之后的结果。

上述代码是将 JSON 文件中的每一项都转换为字符串,然后以 lpush 方式插入到队列的左侧,也可以使用 rpush 进行插入。
如果希望以键值对形式进行插入,需要使用 hset() 方法,参考代码如下所示。
import redis
import json
r = redis.Redis(host='localhost', port=6379, db=15)
with open('travel.json', 'r',encoding='utf-8') as file:
data = json.load(file)
for index,item in enumerate(data):
r.hset('travel', index, json.dumps(item))
可以看到此时 redis 中存储了 key 和 value 。

r.hset(name, key, value) 方法是 Redis 哈希表命令之一,用于将指定的键和值添加到 Redis 哈希表中。
- 参数说明如下:
- name:哈希表的名称。
- key:要添加的键。
- value:要添加的值。
它返回一个整数,表示添加的键值对是否是该哈希表的新键值对。
如果返回 1,表示新键值对已添加;
如果返回 0,表示键已经存在,并且值已被更新。
如何通过Python将JSON格式文件导入redis?的更多相关文章
- python 生成json格式文件,并存储到手机上
上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import json import os import random "" ...
- (python)json 格式文件
Json 数据格式: python 的内置模块: json 格式数据声明只能有一层顶级层(字典格式,可以是任意对象,如字符串,列表等,但实际工作中一般为字典对象,) json 对象本质是一个字符串对象 ...
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- python 使用json格式转换
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- python中json格式数据输出实现方式
python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...
- java导出json格式文件
生成json文件代码: import java.io.File; import java.io.FileWriter; import java.io.Writer; public class Crea ...
- 简单创建json格式文件
简单创建json格式文件 核心就两点: addProperty 添加属性(也就是加键值对) add是添加 另外的object对象 然后直接toString()输出 核心代码如下; public cla ...
- VS调试时JSON格式文件无法加载
VS调试时JSON格式文件无法加载 报错: 解决:在项目中的web.config中进行配置,configuration节中添加以下部份: <system.webServer> <st ...
- Python处理json格式的数据文件(一些坑、一些疑惑)
这里主要说最近遇到的一个问题,不过目前只是换了一种思路先解决了,脑子里仍然有疑惑,只能怪自己太菜. 最近要把以前爬的数据用一下了,先简单的过滤一下,以前用scrapy存数据的时候为了省事也为了用一下它 ...
随机推荐
- 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定:以及通过自定义控件的属性处理,实现 ...
- 联想think服务器centos系统安装
一.前言 本以为安装服务器是一件轻松顺利的事,没想到一安就是两天- 二.错误列表 1.硬件系统不兼容低版本centos 刚开始安装centos6.8的操作系统总是无法找到配置好的raid阵列导致无法安 ...
- 利用Zip.js压缩并上传文件,后端使用.Net(Winform)接收转存
没时间解释了,快上车... 前端js: upload=function () { if(window.FormData) { var fileslist=$("input[type='fil ...
- 数据库系列:InnoDB下实现高并发控制
数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩容 数据库 ...
- 题解 P7325
前言 数学符号约定 \(a,b,p\):表示任意自然数. \(F_x\):表示广义斐波那契数列的第 \(x\) 项. \(f_x\):表示普通斐波那契数列的第 \(x\) 项. 如非特殊说明,将会按照 ...
- GPTs Hunter 是什么?
原文: https://openaigptguide.com/openai-gpts-hunter/ GPTs Hunter 是一个功能强大的免费导航网站,支持多语言,提供用户友好的界面. GPTs ...
- 二、RHEL8操作系统安装
一.如何安装rhel的操作系统? 必要的前提条件:硬件(CPU.内存.硬盘--) + 安装介质(操作系统的安装文件) 会不会把自己的笔记本装成rhel的操作系统呢? 不会 使用虚拟机软 ...
- 【源码系列#02】Vue3响应式原理(Effect)
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 Vue3中响应数据核心是 reactive , reactive 的实 ...
- socket链接和发送demo
Socker 包是创建客户端的,用于链接服务器: ServerSocket 包是创建服务器的,启动端口进行监听等待链接 socket客户端-----------------java.lang.Stri ...
- 文心一言 VS 讯飞星火 VS chatgpt (150)-- 算法导论12.2 6题
六.用go语言,考虑一棵二叉搜索树 T ,其关键字互不相同.证明:如果 T 中一个结点 x 的右子树为空,且 x 有一个后继 y ,那么 y 一定是 x 的最底层祖先,并且其左孩子也是 x 的祖先.( ...