눈송이 설정 converter_class 여전히 변환하는 파이썬 데이터의 유형

0

질문

에서 문서에 대한 파이썬 눈송이 connector,그것은 말한다는 설정을 연결을 매개 변수 converter_class 연결을 만들 때 개체할 수 있을 억제하는 데 사용되는 변환하는 파이썬은 유형(잎 데이터로 문자열). 그러나 전혀 보이지 않는 차이는 쿼리를 실행으로 다음과 같은 두 가지 연결을(사용 snowflake-connector-python=2.7.0):

from snowflake.connector.converter_null import SnowflakeNoConverterToPython

DBH1 = snowflake.connector.connect(
       user='username',
       password='password',
       account='account',
       converter_class=SnowflakeNoConverterToPython      # why isn't this working?
    )

DBH2 = snowflake.connector.connect(
       user='username',
       password='password',
       account='account'
    )

쿼리가 실행되면에서 모두 DBH1 및 DBH2 반환 시간 python datetime 개체,그리고 문자열입니다. 는 것으로 나타났에서 문서 snowflake.connector 매개변수에 대한 언급이 없는 converter_class 옵션-이릭만에 나열된"데이터를 최적화하기옵"섹션에서 여기: https://docs.snowflake.com/en/user-guide/python-connector-example.html#improving-query-performance-by-bypassing-data-conversion. 는 이 기능을 삭제되었습없이 청소 doc?

1

최고의 응답

1

이 기능이 추가되었다 처음에 그것은 단지에 대한 의미 JSON 결과는 세트 형식입니다. 그 이후로 우리는 마이그레이션 결과로 설정 화살표 와 이에 대한 형식으로 작동하지 않는 참으로(화살표 는 기본 형식으로 지금).

하여 나는 다음 코드를 사용합니다.

ctx = snowflake.connector.connect(
        user=USER,
        password=PASSWORD,
        account=ACCOUNT,
        role=ROLE,
        database=DATABASE,
        schema=SCHEMA,
        warehouse=WAREHOUSE,
        converter_class=SnowflakeNoConverterToPython
        )

cs = ctx.cursor()

try:
        cs.execute("SELECT CURRENT_TIMESTAMP()")
        res  = cs.fetchone()
        print(f'{res[0]}')
        print(type(res[0]))
        print(isinstance(res[0], str))

이를 반환하는 저:

2021-11-24 21:34:44.314000+13:00
<class 'datetime.datetime'>
False

지금,나는 변경 결과는 세트 형식으로 다시 원래의 JSON:

try:
        cs.execute("alter session set python_connector_query_result_format='JSON'")
        cs.execute("SELECT CURRENT_TIMESTAMP()")

이번에 얻을:

1637742958.657000000
<class 'str'>
True

화살표 형식으로 여러 가지 장점이 있 JSON 고 더 많은 읽을 수 있습니다 여기

2021-11-24 08:37:12

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................