Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.
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 ) );
Ich habe ChatGPT mehrmals gefragt und die Ergebnisse stimmten nicht mit den JSL-Ergebnissen überein.Bitten Sie nur Experten um Hilfe, die sowohl mit JSL als auch mit Python vertraut sind.Vielen Dank!
Automatisierung und SkriptingWindowsBetreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Mit welchem Teil haben Sie Probleme? Mit dem Erstellen der zu konvertierenden Zahl? Oder mit der Konvertierung?
Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Ist Ihr Verständnis dieser Funktion in JSL
txt = Hex( (Today() - Informat( "01/01/1970", "mm/dd/yyyy" ) - In Hours( 8 )) * 1000 + 600000 + Day( Today() ), base( 36 ) );
wie kann man das gleiche Ergebnis in Python berechnen
Ich verstehe auch Informat("01/01/1970", "mm/dd/yyyy") nicht. Daher wissen wir nicht, wo die Antwort von ChatGPT ist.
Es berechnet das Ergebnis eines Tokens. Wenn die Berechnung nicht korrekt ist, ist ein POST-Download nicht möglich. Tatsächlich können Python-Berechnungen nicht heruntergeladen werden.
Danke!
ChatGPT
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)Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Wenn Sie den ersten Teil nicht verstehen, müssen Sie damit beginnen. In Format konvertiert eine Zeichenfolge in ein JMP-Datum unter Verwendung des angegebenen Formats/Musters

In Ihrem Fall ist das 2082844800. Und wenn Sie JMP verwenden, warum sollten Sie die Konvertierung dann in Python durchführen? Sie können JSL einfach in Python mit run_jsl ausführen.
Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Google-Suche: Python base36
ergibt Folgendes für die Base36-Konvertierung einschließlich einer 2-zeiligen Lösung mit Numpy.
https://stackoverflow.com/questions/1181919/python-base-36-encoding
Eines von vielen Suchergebnissen für Python und Base36.
Beachten Sie auch, dass das Epochendatum von Python der 1. Januar 1970 ist. Wenn Sie den Rohdatumswert von JMP erhalten, ist das Epochendatum der 1. Januar 1904. Wenn Sie direkte Zeitumrechnungen für die Sekunden durchführen, stellen Sie außerdem sicher, dass Sie auch Schaltjahre berücksichtigen.
Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Wie wird dieses JSL in Python an Python weitergegeben?
Ich gehe einfach durch die Paste-Tafel
Danke!

Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Es besteht keine Notwendigkeit, die Zwischenablage zu verwenden, um Informationen zwischen JMP und Python in JMP zu verschieben (wir empfehlen Ihnen, https://www.jmp.com/support/help/en/18.0/#page/jmp/python.shtml# durchzulesen).
import jmp
txt = "initial";
print(txt);
jmp.run_jsl("""
txt = "hello world";
Python Send(txt);
""")
print(txt);

Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Ich bin nicht

Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Das grundlegende Problem, das Sie übersehen, ist, dass die JSL-Umgebung und die Python-Umgebung unterschiedliche Variablenbereiche haben. Innerhalb von JSL gehen Namen in den globalen Namespace, wenn Names Default To Here(0) oder nicht angegeben sind. Sie befinden sich im Namespace „hier“, wenn Names Default To Here(1) ist, oder sie befinden sich innerhalb eines bestimmten Namespace, wenn Sie sich dafür entscheiden, einen anderen Namespace über JSL zu erstellen. Weitere spezielle Dinge wie :age werden überprüft, wenn es sich um Spaltenreferenzen der aktuellen Datentabelle handelt. Dies liegt auf der JSL-Seite der Grenze. Auf der Python-Seite landen in Python erstellte Variablen im Python-Wörterbuch des entsprechenden Bereichs. Im globals()-Wörterbuch für den Hauptteil des Skripts. Jedes Modul, jede Funktion usw. hat sein eigenes lokales Wörterbuch. Python und JSL teilen die Variablen nicht automatisch miteinander. Dies erfordert eine Aktion Ihrerseits, um eine JSL-Variable an die Python-Umgebung zu „senden“ oder einen Python-Wert zurück in die JSL-Umgebung zu „holen“. Zu diesem Zweck verwendet Python Send( v ) den JSL-Wert v und erstellt eine Python-Variable namens v mit einer Kopie des Werts von v. Einige spezielle Typen wie Datentabellen und Matrizen werden als Referenz auf das eigentliche Objekt statt als Kopie übergeben. Die meisten Werte wirken jedoch wie eine Kopie. jV = Python Get( pV ) ; Sucht die Variable pV in der Python-Umgebung und kopiert den Wert in die JSL-Variable jV.
Wie @jthi erwähnt hat, gibt es jede Menge JMP-Dokumentation, die sich mit dieser Funktionalität befasst. Die send() / get()-Funktion ist seit JMP 14 von grundlegender Bedeutung für die Python-Integration. Bitte nehmen Sie sich Zeit, unsere Dokumentation und Beispielskripte zu erkunden. Der Scripting Index, den Sie im Hilfemenü finden, ist eine integrierte JMP-Dokumentation für JSL und Python. Im Scripting Index zeigt „Alle Kategorien“ alles an, mit einem Suchfeld daneben. Die Suche nach Python zeigt schnell alle JSL-Python-Funktionen mit Beschreibungen und ausführbaren Beispielen. Wenn Sie die Kategorie „Python“ wählen, werden alle neuen JMP 18+-Funktionen gefiltert, die von der Python-Umgebung unterstützt werden. Hier finden Sie Beschreibungen und ausführbare Beispiele, die die Funktionalität der JMP 18+ Python-Seite der Integration zeigen. Schließlich wurden aus der Python-Umgebung Doc-Strings verwendet, damit Sie die integrierte Hilfefunktion von Python verwenden können. help( jmp.DataTable ) zum Beispiel



Wie Sie festgestellt haben, können Sie dank der Flexibilität von Python-Paketen Ihre eigenen Möglichkeiten zur Datenübertragung erstellen. Wenn Sie sich die Zeit nehmen, unsere Dokumentation und die bereitgestellten Beispiele durchzugehen, damit zu experimentieren und zu lernen, wie sie funktionieren, werden Sie viel darüber erfahren, wie Sie die Python-Integration von JMP am besten nutzen können.
Abgesehen davon ist die Verwendung von Chat GPT oder anderen KI-Tools zum Schreiben von Code nur dann wirklich sinnvoll, wenn Sie wissen, wie der Code funktionieren soll. Es ist wie das Vertrauen in einen Website-Artikel: Sie müssen genug darüber wissen, wie die Dinge funktionieren (Python, JSL, ...), um eine Vorstellung davon zu haben, ob der Code, den Sie erhalten, korrekt ist, fast funktioniert, die Konzepte richtig wiedergibt oder einfach nur völlige Desinformation ist. Schließlich ist das KI-Wissen über die aktuelle JMP 18+ Python-Integration wahrscheinlich viel geringer als die Informationen zu JMP 14-17, einfach aufgrund der Neuheit von JMP 18. Ich bin überzeugt, dass unsere Dokumentation, unser Scripting Index und die enthaltenen $SAMPLE_SCRIPTS-Verzeichnisse die beste Informationsquelle sind.
Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Dank Paul !

Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Danke, Experten!
OK

Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Ich habe zwei Fragen an die Experten:
1. Wie verkettet man zwei JMP-Tabellen in Python?
2. Wie kann das folgende Python in die asynchrone Ausführungsform Python Asyncio geändert werden?
Danke, Experten!
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="">Ich habe noch immer keine Antwort.</SPAN><SPAN class="">Ich freue mich auf kompetente Hilfe.</SPAN>
Betreff: Wie diese JSL-Konvertierung zur Basis 36 in Python durchgeführt wird.Ich habe ChatGPT mehrmals gefragt und das asyncio-Framework von Python ist wie folgt geschrieben
Die Ausführung bleibt jedoch stets erfolglos.
Bitten Sie in Ihrer Gemeinde um fachkundige Hilfe.
Danke!
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())