gpt4 book ai didi

Python UUID 格式错误的十六进制字符串

转载 作者:行者123 更新时间:2023-11-28 16:50:24 24 4
gpt4 key购买 nike

尝试根据 6.6 XY 坐标对和日期生成 UUID。但是我给函数一个“格式错误的十六进制 UUID 字符串”。 Python 菜鸟请帮助。

def LeID(Xv,Yv,Dv):
import uuid
import string
import arcpy
X_val = "%.6f" % Xv
Y_val = "%.6f" % Yv
date = Dv
xarr = string.split(X_val, '.')
yarr = string.split(Y_val, '.')
date = string.split(date , '/')
val = str(xarr[0] + xarr[1] + yarr[0] + yarr[1] + date[0] + date[1] + date[2] )
return '{' + str(uuid.UUID(val).time_low()) + '}'

最佳答案

它不会像你想的那样工作。

UUID有几种类型: 基于时间 (UUID1)、随机 (UUID4) 或基于另一个 UUID 加上数据,通过 MD5 (UUID3) 或 SHA1 (UUID5) 放在一起。

因此,您可以采用一个先前定义的 UUID,可能是 UUID('f82aa75f-56a8-442b-89d2-eb7aaae6f9c3'),作为命名空间并从中派生所有内容。

def LeID(Xv,Yv,Dv):
import uuid
import string
import arcpy
MyNS = uuid.UUID('f82aa75f-56a8-442b-89d2-eb7aaae6f9c3')
X_val = "%.6f" % Xv
Y_val = "%.6f" % Yv
date = Dv
xarr = string.split(X_val, '.')
yarr = string.split(Y_val, '.')
date = string.split(date , '/')
val = str(xarr[0] + xarr[1] + yarr[0] + yarr[1] + date[0] + date[1] + date[2] )
print MyNS, repr(val) # for debugging
return '{' + str(uuid.uuid5(MyNS, val)) + '}'

关于Python UUID 格式错误的十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com