JSL을 36진법으로 변환하는 작업은 파이썬에서 어떻게 이루어지는가.
txt = Hex( (Today() - Informat( "01/01/1970", "mm/dd/yyyy" ) - In Hours( 8 )) * 1000 + 600000 + Day( Today() ), base( 36 ) );
a = Today();
b = Informat( "01/01/1970", "mm/dd/yyyy" );
c = In Hours( 8 );
d = Day( Today() );
e = (a - b - c) * 1000 + 600000 + d;
f = Hex( (a - b - c) * 1000 + 600000 + d, base( 36 ) );
저는 ChatGPT에 여러 번 질문했고 그 결과는 JSL 결과와 일치하지 않았습니다.JSL과 Python에 모두 익숙한 전문가에게만 도움을 요청하세요.매우 감사합니다!
자동화 및 스크립팅윈도우Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.어떤 부분에서 문제가 있나요? 변환할 숫자를 만드는 것인가요? 아니면 변환인가요?
Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.이 기능에 대한 이해가 JSL에 있나요?
txt = Hex( (Today() - Informat( "01/01/1970", "mm/dd/yyyy" ) - In Hours( 8 )) * 1000 + 600000 + Day( Today() ), base( 36 ) );
파이썬에서 같은 결과를 어떻게 계산할 수 있나요?
저도 Informat("01/01/1970", "mm/dd/yyyy")을 이해하지 못합니다. 그래서 ChatGPT의 답이 어디에 있는지 알 수 없습니다.
계산이 정확하지 않으면 토큰의 결과를 계산합니다. POST 다운로드는 불가능합니다. 실제로, 파이썬 계산은 다운로드할 수 없습니다.
감사해요!
채팅GPT
import datetime
# Step 1: Current time (China's East 8 time zone)
now = datetime.datetime.now()
# Step 2: Date of January 1, 1970
epoch = datetime.datetime(1970, 1, 1)
# Step 3: Calculate the difference in seconds between the current time and January 1, 1970, and subtract 8 hours
time_diff = (now - epoch).total_seconds() - (8 * 3600)
# Step 4: Convert the time difference to milliseconds, add 600,000, and add today's day of the month
milliseconds = time_diff * 1000
e = milliseconds + 600000 + now.day
# Step 5: Convert the result to a base-36 representation
def to_base36(num):
chars = '0123456789abcdefghijklmnopqrstuvwxyz'
base36 = ''
while num > 0:
num, i = divmod(int(num), 36)
base36 = chars[i] + base36
return base36
# Output the base-36 value
result = to_base36(e)
print("Python calculated result:", result)
# Output the current precise timestamp
print("Current timestamp:", now)Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.첫 번째 부분을 이해하지 못한다면, 그것부터 시작해야 합니다. Format에서 지정된 형식/패턴을 사용하여 문자열을 JMP datenum으로 변환합니다.

귀하의 경우는 2082844800입니다. 또한 JMP를 사용하는 경우 Python에서 변환을 수행하는 이유는 무엇입니까? Python에서 run_jsl을 사용하여 JSL을 실행할 수 있습니다.
Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.구글 검색: 파이썬 base36
다음은 numpy를 사용한 2줄 솔루션을 포함하여 base36 변환에 대한 것입니다.
https://stackoverflow.com/questions/1181919/python-base-36-encoding
Python과 base36에 대한 많은 검색 결과 중 하나입니다.
또한 Python의 Epoch 날짜는 1970년 1월 1일이라는 점을 기억하세요. JMP의 원시 날짜 값을 가져오는 경우 Epoch 날짜는 1904년 1월 1일입니다. 또한 초에서 직접 시간을 변환하는 경우 윤년도 고려해야 합니다.
Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.파이썬으로 작성된 이 JSL이 어떻게 파이썬으로 전달되나요?
나는 그냥 붙여넣은 보드를 살펴볼게
감사해요!

Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.JMP에서는 jmp와 python 사이에서 정보를 이동할 때 클립보드를 사용할 필요가 없습니다( https://www.jmp.com/support/help/en/18.0/#page/jmp/python.shtml# 을 읽어보시기 바랍니다).
import jmp
txt = "initial";
print(txt);
jmp.run_jsl("""
txt = "hello world";
Python Send(txt);
""")
print(txt);

Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.나는 아니다

Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.당신이 놓치고 있는 근본적인 문제는 JSL 환경과 Python 환경이 서로 다른 변수 범위를 가지고 있다는 것입니다. JSL 내에서 이름은 Names Default To Here(0);로 지정되거나 지정되지 않은 경우 글로벌 네임스페이스로 이동합니다. Names Default To Here(1);로 지정되면 'here' 네임스페이스에 있거나 JSL을 통해 다른 네임스페이스를 만들기로 선택한 경우 특정 네임스페이스 내에 있습니다. :age와 같은 추가 특수 사항은 현재 데이터 테이블의 열 참조인지 확인합니다. 이것은 경계의 JSL 측에 있습니다. Python 측에서 Python에서 생성된 변수는 적절한 범위의 Python 사전에 저장됩니다. 스크립트 본문의 globals() 사전에 저장됩니다. 각 모듈, 함수, ...에는 고유한 로컬 사전이 있습니다. Python과 JSL은 변수를 서로 자동으로 공유하지 않습니다. 이를 위해서는 JSL 변수를 Python 환경으로 '보내거나' Python 값을 JSL 환경으로 다시 '가져오는' 작업이 필요합니다. 이러한 목적을 위해 Python Send(v)는 JSL 값 v를 가져와 v 값의 사본을 갖는 v라는 Python 변수를 생성합니다. 데이터 테이블 및 행렬과 같은 몇 가지 특수 유형은 사본 대신 실제 객체에 대한 참조로 전달됩니다. 그러나 대부분의 값은 사본으로 나타납니다. jV = Python Get(pV) ; Python 환경에서 pV 변수를 조회하여 값을 JSL 변수 jV에 복사합니다.
@jthi가 언급했듯이 이 기능에 대해 설명하는 JMP 설명서가 많이 있습니다. send()/get() 기능은 JMP 14부터 Python 통합에 기본이 되었습니다. 설명서와 샘플 스크립트를 탐색하는 데 시간을 할애하세요. 도움말 메뉴에서 찾을 수 있는 스크립팅 인덱스는 JSL 및 Python에 대한 기본 JMP 설명서입니다. 스크립팅 인덱스 내에서 '모든 카테고리'는 모든 것을 표시하고 그 옆에 검색 필드가 있습니다. Python을 검색하면 설명과 실행 가능한 샘플이 있는 모든 JSL Python 기능이 빠르게 표시됩니다. 'Python' 카테고리를 선택하면 Python 환경에서 지원되는 모든 새로운 JMP 18+ 기능이 필터링되어 표시됩니다. 여기에서 통합의 JMP 18+ Python 측면 기능을 보여주는 설명과 실행 가능한 예제를 찾을 수 있습니다. 마지막으로 Python 환경에서 문서 문자열을 활용하여 Python의 기본 도움말 기능을 사용할 수 있습니다. 예를 들어 help(jmp.DataTable)



알다시피, Python 패키지의 유연성 덕분에 데이터를 전달하는 나만의 방법을 만들 수 있습니다. 제공된 설명서와 샘플을 살펴보세요. 이것들을 가지고 놀고 어떻게 기능하는지 배우면 JMP의 Python 통합을 가장 잘 활용하는 방법을 명확히 하는 데 큰 도움이 될 것입니다.
덧붙여, Chat GPT나 다른 AI 도구를 사용하여 코드를 작성하는 것은 코드의 작동 방식을 알고 있는 경우에만 실제로 유용합니다. 웹사이트 기사를 신뢰하는 것과 마찬가지로, Python, JSL 등 사물의 작동 방식에 대해 충분히 알고 있어야 얻는 코드가 정확한지, 거의 작동하는지, 개념을 올바르게 전달했는지, 아니면 완전히 잘못된 정보인지 알 수 있습니다. 마지막으로, 현재 JMP 18+ Python 통합에 대한 AI 지식은 JMP 18의 새로운 기능 때문에 JMP 14-17에 대한 정보보다 훨씬 적을 가능성이 큽니다. 저는 가장 좋은 정보 출처가 설명서, 스크립팅 인덱스, 포함된 $SAMPLE_SCRIPTS 디렉토리라고 확신합니다.
Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.감사하다 폴 !

Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.전문가 여러분 감사합니다!
좋아요

Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.전문가들에게 두 가지 질문이 있습니다.
1. 파이썬에서 두 개의 JMP 테이블을 연결하는 방법은 무엇인가요?
2, 다음의 파이썬을 파이썬 asyncio 비동기 실행 형태로 어떻게 수정할 수 있을까요?
전문가 여러분 감사합니다!
import jmputils
import jmp
from datetime import datetime, timedelta
today = datetime.today()
dates = []
for i in range(200):
dates.append((today - timedelta(days=i)).strftime('%Y%m%d'))
j = 0
for date in dates:
#print(date)
j += 1
jmp.run_jsl('''
b=Python Get(date);
d1=New Table("o",Add Rows(1),New Column("date",Set Values({b})));
Python Send(d1)
''')
#print(d1)
jmp.run_jsl('''
j=Python Get(j);
//b=Python Get(d1);
if(j==1,d2=d1;d2<<SETNAME></SETNAME><SPAN class="">아직도 답변이 없네요.</SPAN><SPAN class="">전문가의 도움을 기대합니다.</SPAN>
Re: JSL을 36진법으로 변환하는 과정이 파이썬에서 어떻게 이루어지는가.저는 ChatGPT에 여러 번 물었고, 파이썬의 asyncio 프레임워크는 이렇게 작성되어 있습니다.
하지만 실행은 항상 실패합니다.
지역 내 전문가의 도움을 요청하세요.
감사해요!
import asyncio
import concurrent.futures
import jmp
# Define a global variable kk
kk = 1
# Create an asynchronous function to run the JSL script
async def run_jsl_script():
global kk
loop = asyncio.get_event_loop()
# Simplified JSL script
jsl_script = f'''
Print("Value of kk: {kk}");
b = Python Get({kk});
Print("Value of b: ", b);
d1 = New Table("o", Add Rows(1), New Column("date", Set Values({{b}})));
if (b == 1,
d2 = d1;
d2 << Set Name("Name 2");
Print("Table d1 copied to d2 with new name.");
,
current data table(d2);
d2 << Concatenate(Data Table(d1), Append to first table);
Close(d1, nosave);
);
Python Send(d1);
'''
# Print the JSL script content for debugging
print("JSL script to be executed:")
print(jsl_script)
try:
# Use a thread pool to run the synchronous JSL script
with concurrent.futures.ThreadPoolExecutor() as pool:
# Call jmp.run_jsl function
await loop.run_in_executor(pool, lambda: jmp.run_jsl(jsl_script))
except Exception as e:
print(f"Error occurred: {e}")
# Update the kk variable
kk += 1
print(f"Current value of kk: {kk}")
# Main asynchronous function
async def main():
# Example of running the JSL script multiple times
for _ in range(3): # For example, run three times
await run_jsl_script()
print("All JSL scripts executed.")
# Run the main function
if __name__ == "__main__":
asyncio.run(main())