PythonExpression
- Import and Export support PythonExpression.
- There is no associated file extension for PythonExpression. To execute ".py" files, use ExternalEvaluate.
- Python must be installed and configured on your system as described in Configure Python for ExternalEvaluate.
Background & Context
-
- Code representation format for the Python programming language.
- PythonExpression supports Python numbers, strings, lists, Booleans and dictionaries.
- Plain text format.
- Python was first released as a programming language in 1991.
Import & Export
- See the following reference pages for full general information:
-
Import, Export import from or export to a file CloudImport, CloudExport import from or export to a cloud object ImportString, ExportString import from or export to a string ImportByteArray, ExportByteArray import from or export to a byte array
Import Elements
- General Import elements:
-
"Elements" list of elements and options available in this file "Summary" summary of the file "Rules" list of rules for all available elements - Details of elements...
-
"Data" the literal Python expression - ImportString uses the "Data" element by default.
- The symbol Null is represented as the Python value "None".
- Not all Python built-in types are supported. The supported Python types are:
-
tuple List an ordered sequence of values dictionary Association an association of keys and values int Integer arbitrary-sized integer long Integer arbitrary-sized integer float Real real-valued number complex Complex a complex number list List a sequence of values boolean True|False Boolean values string String a sequence of character values None Null null value
Examples
open all close allBasic Examples (6)
ImportString["'hello world'", "PythonExpression"]ImportString["[1,'h',True,None,1.2]", "PythonExpression"]ExportString[Range[10], "PythonExpression"]Import a dictionary as a Wolfram Language list:
ImportString["{'a':1,'b':2}", "PythonExpression"]Export an Association as a Python dictionary:
ExportString[<|"a" -> 1, "b" -> 2|>, "PythonExpression"]Import the result of evaluating external code in Python:
ImportString[ExternalEvaluate["Python" -> "String", "'hello world'"], "PythonExpression"]Confirm it is the same as using the "ReturnType" of "Expression":
% == ExternalEvaluate["Python" -> "Expression", "'hello world'"]Possible Issues (1)
"PythonExpression" internally starts and stops a Python session every time ImportString is called, which takes a substantial amount of time:
expressions = {"[1, 2, {1:2}]", "1 + 1", "sum(range(10))"};Map[
ImportString[#, "PythonExpression"] &,
expressions
]//RepeatedTimingWhen performance is a concern, manually manage a Python session using ExternalEvaluate:
With[
{s = StartExternalSession["Python"]},
WithCleanup[
ExternalEvaluate[s, expressions] // RepeatedTiming,
DeleteObject[s]
]
]See Also
Related Guides
History
Introduced in 2017 (11.2)