Python将JSON格式文件导入 redis,多种方法

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务,实现步骤如下所示。
在导入前需要先确定你已经安装 Redis,并且可以启动相关服务。
windows 上启动 redis 的命令是 redis-server.exe redis.windows.conf,效果图如下:
![5cd8eb2429444dd58ffed1510247abb6[1].png]( https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_e513fa5fd806495a808a06f51af47c57.png)

@[toc]

使用 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 工具同步进行连接测试。

![ac559fddb6704d45b92f4ba62973d31f[1].png](https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_6c93e80d214a42aa9878b3ba7f80607a.png)

写入键值

连接成功后,可以使用 Redis 的命令来操作数据,例如设置键值对:

import redis
r = redis.Redis(host='localhost', port=6379, db=15)
r.set('name', '梦想橡皮擦')

print(r)

可以在可视化工具中查看到数据已经写入。

![b037d9ea55b443ffb62e8941b5819c00[1].png](https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_29c29638a9a9404d8bff1c7341922db1.png)

获取键值

r.get('name')

基础准备好,接下来就将 JSON 文件一次性的写入到 redis 中。

操作 JSON 文件写入 redis

首先使用 json.load() 方法读取 JSON 文件,首先看一下 JSON 文件内容。

![c02193517c7e40f0bf4e72428d5e5282[1].png](https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_14c93f29113d4ff683eecc72b533dab1.png)

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))

先看一下插入之后的结果。

![df437b1b401d4f948f2fc690b6cb025d[1].png](https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_7f07f3e87cb94eb0ab528cf1ee97d756.png)

上述代码是将 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 。

![805fe779f8e840aa83208a5efcb8e01c[1].png](https://ucc.alicdn.com/pic/developer-ecology/uogal7qkb5com_4d2eef5209ed4feab7ae6b97442ee734.png)

r.hset(name, key, value) 方法是 Redis 哈希表命令之一,用于将指定的键和值添加到 Redis 哈希表中。

  • 参数说明如下:

    • name:哈希表的名称。
    • key:要添加的键。
    • value:要添加的值。

它返回一个整数,表示添加的键值对是否是该哈希表的新键值对。
如果返回 1,表示新键值对已添加;
如果返回 0,表示键已经存在,并且值已被更新。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 846 篇原创博客
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
关系型数据库 MySQL 数据库
Python中使用MySQL模糊查询的方法
(1)同样需要将your_username、your_password、your_database替换为我们的MySQL数据库的实际用户名、密码和数据库名。 (2)在mysql.connector.connect()中,我们没有直接指定字符集和游标类型,因为mysql-connector-python的默认配置通常已经足够好。但是,如果需要,我们可以添加这些配置选项。 (3)使用cursor.close()和cnx.close()来确保游标和连接都被正确关闭。 (4)mysql-connector-python也支持使用上下文管理器(即with语句)来自动管理游标和连接的关闭,但这需要创建一个
|
1天前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
|
1天前
|
Web App开发 JSON 程序员
老程序员分享:Python有哪些好用的语言翻译方法
老程序员分享:Python有哪些好用的语言翻译方法
|
2天前
|
索引 Python 容器
深入探索Python字符串:技巧、方法与实战
深入探索Python字符串:技巧、方法与实战
|
3天前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
6 0
python之字符串定义、切片、连接、重复、遍历、字符串方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
197 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
|
6天前
|
机器学习/深度学习 人工智能 前端开发
Python中的模块化编程
【6月更文挑战第17天】Python模块化编程与软件架构设计的关键在于拆分任务到独立模块,提高代码的可维护性、可重用性和可扩展性。例如,学生管理系统可分解为录入、查询和删除模块。MVC和MVVM架构模式有助于组织代码,而微服务和函数式编程将在未来发展中扮演重要角色。通过示例代码,读者能学习如何实现这些概念,提升项目开发效率和质量。
154 57
|
13天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!