I have python code that I wrote to convert a python list to an XML element. This is intended to interact with LabVIEW, hence the strange XML array format. Anyway, here is the code:
def pack(data):
Now I need to write an unpack () method to convert a packed XML array to a python list. I can extract the dimensions of the array and the data is just fine:
def unpack(element): # retrieve the array dimensions and data lengths = [] data = [] for entry in element: if entry.text == "Dimsize": lengths.append(int(entry.text)) else: data.append(unpack_simple(entry)) # now what?
But I'm not sure how unflatten the array is. What would be an effective way to do this?
Edit: this is what the python list and related XML look like. Note: arrays are n-dimensional.
data = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
And then the XML version:
<Array> <Dimsize>2</Dimsize> <Dimsize>2</Dimsize> <Dimsize>2</Dimsize> <I32> <Name /> <Val>1</Val> </I32> ... 2, 3, 4, etc. </Array>
The actual format is not important, but I just donβt know how to uncheck the box with:
data = [1, 2, 3, 4, 5, 6, 7, 8]
back to:
data = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
Given:
lengths = [2, 2, 2]
Suppose pack_simple () and unpack_simple () do the same thing as pack () and unpack () for basic data types (int, long, string, boolean).