广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python生成唯一id的方式有哪些
  • 316
分享到

python生成唯一id的方式有哪些

2023-07-05 07:07:43 316人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python生成唯一id的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python生成唯一id的方式有哪些”吧!1.使用UUIDUUID应该是大家耳熟能详的一个东西

本篇内容主要讲解“python生成唯一id的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python生成唯一id的方式有哪些”吧!

1.使用UUID

  • UUID应该是大家耳熟能详的一个东西了,它的全称叫 通用唯一识别码(英語:Universally Unique Identifier,缩写:UUID)

  • 生成标准32位uuid

import shortuuidimport uuid# 生成一个标准格式32位UUID,参数为位数def new_uuid(length=None):    if length is None:        return str(uuid.uuid1())    else:        return str(shortuuid.ShortUUID().random(length=length))

标准uuid

import uuiduid = uuid.uuid1()print(uid)print(uid.hex)

2.mongodb的ObjectId

相信使用过mongoDB的朋友们很清楚,它的文档默认的key其实也是一个uuid,所以我们也可以利用monGodb的ObjectId来产生一个UUID

import bsondemoid = bson.ObjectId()print(demoid)

总结:UUID/ObjectID
优点: 本机生成,效率高,全局唯一性,通用标准。
缺点:不利于存储,在Mysql的InnoDB引擎下做索引很影响效率,不利于海量数据查询。

3.雪花算法 Snowflake

twitter(推特)前些年把自己的唯一ID生成算法开源了,也叫做雪花算法,取自(世界上没有一片相同的雪花)
pysnowflake 库安装

pip install pysnowflake -i https://pypi.tuna.tsinghua.edu.cn/simple/
# Importing the `snowflake.client` module.import snowflake.client# Calling the `get_guid()` function from the `snowflake.client` module.uuid = snowflake.client.get_guid()# Printing the value of the `uuid` variable.print(uuid)# Printing the binary representation of the `uuid` variable.print(bin(uuid))# 4674877370191056897# 0b100000011100000100000000011001100011010110000000001000000000001

python生成唯一id的方式有哪些

优点: 不依赖第三方系统,ID全局唯一,数据具有递增的连续性,便于查询。
缺点:依赖系统时钟,如果系统时钟有问题,会导致ID重复(该问题可以通过很多方式避免)

4.时间戳id

4.1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳

import timeimport datetime t = time.time() print (t)                       #原始时间数据print (int(t))                  #秒级时间戳print (int(round(t * 1000)))    #毫秒级时间戳print (int(round(t * 1000000))) #微秒级时间戳

返回

1499825149.257892    #原始时间数据
1499825149           #秒级时间戳,10位
1499825149257        #毫秒级时间戳,13位
1499825149257892     #微秒级时间戳,16位

4.2 获取当前日期时间

dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')dt_ms = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') # 含微秒的日期时间,来源 比特量化print(dt)print(dt_ms)

返回

2018-09-06 21:54:46
2018-09-06 21:54:46.205213

4.3 将日期转为秒级时间戳

dt = '2018-01-01 10:40:30'ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))print (ts)

返回

1514774430

4.4 UTC时间

dt2 = '2023-02-04T02:12:05.047Z'dt = dt2[0:19].replace('T', ' ')ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))

返回

1675447925

4.5 将秒级时间戳转为日期

ts = 1515774430dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))print(dt)

返回

2018-01-13 00:27:10

4.6 时间格式转成另一种时间格式

dt = '08/02/2019 01:00'dt_new = datetime.datetime.strptime(dt, '%m/%d/%Y %H:%M').strftime('%Y-%m-%d %H:%M:%S')print(dt_new)

返回

2019-08-02 01:00:00

4.7 转结构体时间struct_time

ta_dt = time.strptime("2018-09-06 21:54:46", '%Y-%m-%d %H:%M:%S')  #日期时间转结构体 ta_ms = time.localtime(1486188476) #时间戳转结构体,注意时间戳要求为int,来源 比特量化print(ta_dt)print(ta_ms)

返回

time.struct_time(tm_year=2018, tm_mon=9, tm_mday=6, tm_hour=21, tm_min=54, tm_sec=46, tm_wday=3, tm_yday=249, tm_isdst=-1)
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14, tm_min=7, tm_sec=56, tm_wday=5, tm_yday=35, tm_isdst=0)

4.8 python获取纳秒级时间戳方法(19位)

import timeprint(time.time_ns())

返回

1600251903664616300

到此,相信大家对“python生成唯一id的方式有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: python生成唯一id的方式有哪些

本文链接: https://www.lsjlt.com/news/350316.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python生成唯一id的方式有哪些
    本篇内容主要讲解“python生成唯一id的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python生成唯一id的方式有哪些”吧!1.使用UUIDUUID应该是大家耳熟能详的一个东西...
    99+
    2023-07-05
  • python 生成唯一id的四种方式
    目录1.使用UUID2.mongodb的ObjectId3.雪花算法 Snowflake4.时间戳id4.1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳4.2 获取当前日期时间4.3...
    99+
    2023-02-28
    python 生成唯一id python 唯一id
  • JS生成唯一id方式之UUID和NanoID
    目录一、为什么 NanoID 正在取代 UUID二、js如何生成三、NanoID的方式前言: 唯一id有了更好的方式,那就是NanoID,今天这篇文章记录一下NanoID 正在取代...
    99+
    2022-11-12
  • Python用UUID库生成唯一ID的方法示例
    UUID介绍 UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID —— Universally Unique IDentifie...
    99+
    2022-06-04
    示例 方法 Python
  • 分布式ID的生成方式有哪些
    本篇内容主要讲解“分布式ID的生成方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分布式ID的生成方式有哪些”吧!一、为什么要用分布式ID?在说分布式I...
    99+
    2022-10-18
  • Java几种分布式全局唯一ID生成方案
    目录缘起常见方案UUID数据库自增键TDDL SequenceLeaf-segment类雪花算法时间回拨问题Leaf-snowflakeSeata UUID总结缘起 在分布式微服务系...
    99+
    2023-01-30
    Java分布式全局唯一ID生成 Java分布式全局唯一ID
  • mysql主键id的生成方式(自增、唯一不规则)
    目录1、利用uuid函数生成唯一且不规则的主键id2、id实现自动增长1、利用uuid函数生成唯一且不规则的主键id sql: CREATE TABLE `test` ( `...
    99+
    2022-11-12
  • js动态生成唯一id的三种方法
    目录一. 引入时间戳,生成可控长度的随机数二. JS 生成随机三、ID生成器NanoID下面是一些补充一. 引入时间戳,生成可控长度的随机数 随机数长度控制,定义一个长度变量(len...
    99+
    2023-05-18
    js动态生成唯一id js唯一id
  • Redis生成全局唯一ID的实现方法
    目录简介:特性:生成规则: ID生成类:测试类:简介: 全局唯一ID生成器是一种在分布式系统下用来生成全局唯一ID的工具 特性: 唯一性高性能安全性高可用递增性 生成规则:...
    99+
    2022-11-13
  • vue点击项目唯一id生成器nanoid的使用方式
    目录点击项目唯一id生成器nanoid使用nanoid的安装nanoid的使用前端常用库——nanoid1.在项目目录下打开终端,下载安装nanoid库2.引...
    99+
    2022-11-13
  • JS生成唯一id方式之UUID和NanoID的示例分析
    这篇文章给大家分享的是有关JS生成唯一id方式之UUID和NanoID的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为什么 NanoID 正在取代 UUID.更安全 在大多数随机生成器中,它们使用不...
    99+
    2023-06-22
  • springboot集成redis并生成全局唯一索引ID的方法
    本篇内容主要讲解“springboot集成redis并生成全局唯一索引ID的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot集成redis并生成全局唯一索引ID的方法”吧!...
    99+
    2023-06-29
  • Redis生成分布式系统全局唯一ID的实现
    目录分布式系统全局唯一ID基于Redis INCR 命令生成分布式全局唯一ID采用Redis生成商品全局唯一ID分布式系统全局唯一ID 在互联网系统中,并发越大的系统,数据就越大,数...
    99+
    2022-11-12
  • Go实现分布式唯一ID的生成之雪花算法
    目录背景:特性:雪花算法:分布式唯一ID的生成 背景: 在分布式架构下,唯一序列号生成是我们在设计一个尤其是数据库使用分库分表的时候会常见的一个问题 特性: 全局唯一,这是基本要求,...
    99+
    2022-11-13
  • Android应用中获取设备唯一ID的方法有哪些
    本篇文章为大家展示了Android应用中获取设备唯一ID的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先来看看几种比较单一的方式:IMEI方式:TelephonyManager.getD...
    99+
    2023-05-31
    android roi
  • 分库分表的分布式主键ID生成方法有哪些
    本篇内容主要讲解“分库分表的分布式主键ID生成方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分库分表的分布式主键ID生成方法有哪些”吧!引入任何一种技...
    99+
    2022-10-18
  • 浅谈Java生成唯一标识码的三种方式
    目录前言正文UUID实现唯一标识码SnowFlake实现唯一标识码通过时间工具生成带有业务标示的唯一标识码前言 我们经常会遇到这样的场景,需要生成一个唯一的序列号来表明某一个数据的唯...
    99+
    2022-11-13
  • python生成图表的方法有哪些
    Python生成图表的方法有多种,其中常用的包括:1. Matplotlib:是Python中最常用的绘图库,提供了丰富的绘图功能,...
    99+
    2023-09-15
    python
  • python生成器创建的方法有哪些
    本篇内容主要讲解“python生成器创建的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python生成器创建的方法有哪些”吧!1、推导式的方法,只需将列表生成的[]改为()创建生成器...
    99+
    2023-06-30
  • python生成器的构建方法有哪些
    本篇内容主要讲解“python生成器的构建方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python生成器的构建方法有哪些”吧!在python中有三种方式来创建生成器:  通过生成器函...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作