programing

python: 유효한 UUID를 문자열에서 UUID로 변환하는 방법은 무엇입니까?

instargram 2023. 7. 31. 21:02
반응형

python: 유효한 UUID를 문자열에서 UUID로 변환하는 방법은 무엇입니까?

데이터를 다음과 같이 수신합니다.

   {
        "name": "Unknown",
        "parent": "Uncategorized",
        "uuid": "06335e84-2872-4914-8c5d-3ed07d2a2f16"
    },

그리고 나는 변환이 필요합니다.uuid부터String로.uuid

파이썬 문서에서 방법을 찾지 못했습니다. 아니면 기본적인 것을 놓쳤습니까?

그냥 전달해 주세요.uuid.UUID:

import uuid

o = {
    "name": "Unknown",
    "parent": "Uncategorized",
    "uuid": "06335e84-2872-4914-8c5d-3ed07d2a2f16"
}

print uuid.UUID(o['uuid']).hex

전화 안 함.hexUUID 개체에서 해당 UUID의 문자열 표현이 필요하지 않은 경우.

>>> import uuid
>>> some_uuid = uuid.uuid4()
>>> type(some_uuid)
<class 'uuid.UUID'>
>>> some_uuid_str = some_uuid.hex
>>> some_uuid_str
'5b77bdbade7b4fcb838f8111b68e18ae'
>>> type(some_uuid_str)
<class 'str'>

그런 다음 위에서 언급한 다른 방법으로 UUID 문자열을 UUID 인스턴스로 다시 변환합니다.

>>> uuid.UUID(some_uuid_str)
UUID('5b77bdba-de7b-4fcb-838f-8111b68e18ae')
>>> (some_uuid == uuid.UUID(some_uuid_str))
True
>>> (some_uuid == some_uuid_str)
False

작은 도우미 유틸리티 기능을 설정하여 다음과 같은 기능을 검증할 수도 있습니다.str다음을 수행하려면 UUID를 반환해야 합니다.

def is_valid_uuid(val):
    try:
        return uuid.UUID(str(val))
    except ValueError:
        return None

사용 방법:

>>> some_uuid = uuid.uuid4()
>>> is_valid_uuid(some_uuid)
UUID('aa6635e1-e394-463b-b43d-69eb4c3a8570')
>>> type(is_valid_uuid(some_uuid))
<class 'uuid.UUID'>

문자열 형식의 유효한 UUID를 실제 UUID 개체로 다시 변환하는 데 위의 답변이 효과적이지 않은 경우...사용.uuid.UUID(your_uuid_string)저를 위해 일했습니다.

In [6]: import uuid
   ...:
   ...: o = {
   ...:     "name": "Unknown",
   ...:     "parent": "Uncategorized",
   ...:     "uuid": "06335e84-2872-4914-8c5d-3ed07d2a2f16"
   ...: }
   ...:
   ...: print uuid.UUID(o['uuid']).hex
   ...: print type(uuid.UUID(o['uuid']).hex)
06335e84287249148c5d3ed07d2a2f16
<type 'str'>

In [7]: your_uuid_string = uuid.UUID(o['uuid']).hex

In [8]: print uuid.UUID(your_uuid_string)
06335e84-2872-4914-8c5d-3ed07d2a2f16

In [9]: print type(uuid.UUID(your_uuid_string))
<class 'uuid.UUID'>

@slajma의 답변을 기반으로 True/False를 반환하는 유틸리티 함수는 다음과 같습니다.

def is_valid_uuid(val):
try:
    uuid.UUID(str(val))
    return True
except ValueError:
    return False

언급URL : https://stackoverflow.com/questions/15859156/python-how-to-convert-a-valid-uuid-from-string-to-uuid

반응형