Ein Kunde hat dieses Beispiel eines Arrays im Binär- und Textformat gesendet
Binär:
b'\x0e\xb1C>J\x04\x06?Cf\x05?\x13\xdb\r?l\xa7->h?\xd2>\x83\x8d\xee>pVF>oC\xde>\x9b\x1b\xcb>\xf7k\xc3>:\x8b:>\xe4N!?Ti\x04?\x84pU>\x1a\x92\xef>!P\x0f?\xba\xf7\xf2>u\xe6!>\x91B\t?*?\x06?\x07\xa1$>a\x1d\xec>7\x15\xe0>?\x9f\xf9>\xf4\xe2[>\x86\xca\xee>\xd38\x00?kWT>\x06C\xf4>S@\x0f?\xc4\t\x05?\xd0P\x1c>\x97\x96\x00?z1\x04?`%>>\xc1\x8d\x16?\x1a\x80\xfa>M\xbc\x1b?\xfaUC>5|\x00?\xb8o\xf6>_.Z>\x0c\xb2\xe0>\x0bf\xe8>\x8f(\x0c?\xdf\x13$>\xd0\xd5\xda>N?\xe9>\xe3:5>\xf0z\x0f?\x90(\xf8>\t\xb8\x12?\x9eZD>\x16t\x11?{l\xf4>\xac\xd8U>\xa40\xdb>\r\xbe\x01?\n\xd5\x07?I\xd3[>\xfc1\x11?EN\n?\x02\x92^>{#\x0c?\xb8\x1d\x00?0\xc4\x14?a\x004>\x84m\x0e?L\x1c\n?9\x1aV>GD\xe7>v\x80\x06?$k\xff>3\xc0,>l\x8f\xd3>f\xab\xe3>\xd9\'k>\xa9H\xe5>\xb2;\xdd>Y9\xfb>\xae\x1c1>\xd8\x05\xf3>\xc07\xfa>\xd0\x19X>R\x10\xff>\x96\xe8\x06?|B\xe8>\xbbJ<>)>\x13?\xf3p\xee>\x7f\x916>f#\x00?5z\xd8>\xed\x0c\x04?\x87$<>\x01n\x1c?\x199\x15?\xe8iL>\xd8I\xf4>"\xb7\xeb>I)\x0b?\xca\xd4)>\x15G\xdf>T\xcb\x1a?`L">\x1d7\x04?^\xa1\xf7>\x9dr\xf8>Cg?>*Z\x11?\xe9q\x0e?\x1e4Q>@H\x03?k\xcf\x00?\x89\x82\x03?\x8e\xa0A>DT\x11?\xcb \xeb>\x8c87>\x1f#\x0b?\xdc\xd2\x12?\xb6u\xee>)\t:>b$\x1f?A\x92\x05?\xb8pw>.\xd0\x1e?\x82\x90\xf7>pM\x13?\xd6\xb9r>H\xe6\xf7>~)\x00?\x9f\x94?>\n>\x11?\x83\x92\xef>\xf0m\x0c?\xc6\xab=>\xd0\xaa\x04?j\x89\x03?'
Text (mit Pandas dekodiert):
array('f', [0.19110509753227234, 0.5235029458999634, 0.521091639995575, 0.5541240572929382, 0.1695839762687683, 0.41064000129699707, 0.46592339873313904, 0.19368910789489746, 0.4341082274913788, 0.39669498801231384, 0.3816830813884735, 0.18217173218727112, 0.6301100254058838, 0.5172321796417236, 0.2084370255470276, 0.4679115414619446, 0.5598164200782776, 0.47454625368118286, 0.15810568630695343, 0.5361719727516174, 0.5244013071060181, 0.16077052056789398, 0.46116164326667786, 0.4376618564128876, 0.4875430762767792, 0.21473294496536255, 0.46638888120651245, 0.5008670687675476, 0.20736472308635712, 0.4770738482475281, 0.5595752596855164, 0.5196802616119385, 0.15265202522277832, 0.5022978186607361, 0.5163799524307251, 0.18568944931030273, 0.5881004929542542, 0.4892585873603821, 0.6083419919013977, 0.1907576620578766, 0.5018952488899231, 0.4813210964202881, 0.21306751668453217, 0.43885838985443115, 0.45390352606773376, 0.5474938750267029, 0.1602320522069931, 0.4274125099182129, 0.455561101436615, 0.17698244750499725, 0.5604696273803711, 0.48468446731567383, 0.573120653629303, 0.19175192713737488, 0.5681775808334351, 0.4773901402950287, 0.20883435010910034, 0.4281054735183716, 0.5068061947822571, 0.5305944681167603, 0.21467317640781403, 0.5671689510345459, 0.5402567982673645, 0.21735385060310364, 0.5474163889884949, 0.5004534721374512, 0.5811185836791992, 0.1757826954126358, 0.5563585758209229, 0.5394942760467529, 0.2090844064950943, 0.4516927897930145, 0.5253976583480835, 0.4988642930984497, 0.1687019318342209, 0.4132035970687866, 0.4446670413017273, 0.22964419424533844, 0.4478199779987335, 0.43209606409072876, 0.49067190289497375, 0.17296096682548523, 0.474653959274292, 0.4887065887451172, 0.21103596687316895, 0.4981713891029358, 0.5269864797592163, 0.4536322355270386, 0.1838788241147995, 0.5751672387123108, 0.4657054841518402, 0.17828939855098724, 0.5005401372909546, 0.42280736565589905, 0.5158222317695618, 0.18373309075832367, 0.6110535264015198, 0.5829024910926819, 0.1996227502822876, 0.477125883102417, 0.46038156747817993, 0.5435987114906311, 0.16585078835487366, 0.4360891878604889, 0.6046650409698486, 0.1584944725036621, 0.516465961933136, 0.4836530089378357, 0.48524942994117737, 0.18691734969615936, 0.5677820444107056, 0.5564256310462952, 0.20430037379264832, 0.5128211975097656, 0.5031649470329285, 0.5137105584144592, 0.18908903002738953, 0.5676920413970947, 0.4592345654964447, 0.17892664670944214, 0.5435046553611755, 0.5735299587249756, 0.4657418131828308, 0.18167556822299957, 0.621648907661438, 0.5217629075050354, 0.24164092540740967, 0.6203640699386597, 0.4835243821144104, 0.5754003524780273, 0.2370370328426361, 0.4841787815093994, 0.5006331205368042, 0.18709038197994232, 0.5673528909683228, 0.4679146707057953, 0.5485525131225586, 0.18522557616233826, 0.5182313919067383, 0.5138155221939087])
Die Daten werden aus Gründen der Größe/Bequemlichkeit in binärer Form in einer Datenbank gespeichert. Sie fragten sich, ob es eine Möglichkeit gäbe, sie innerhalb von JMP wieder in nutzbare Zahlen umzuwandeln. Ich dachte, wir könnten es vielleicht als BLOB behandeln und so vorgehen, aber ich hatte kein Glück.
Gedanken aus der Gruppe darüber, was wir tun könnten?
Am besten,
M
Der Trick besteht darin, diesen String in eine Kodierung umzuwandeln, die Char to Blob() unterstützt. Glücklicherweise kommt "ascii-hex" ihrer Kodierung nahe. Der Blob to Matrix kann seine Magie vollbringen.
Sie müssen auch das Format der Floats kennen. Ein wenig Versuch und Irrtum legen nahe, dass es sich um 4-Byte-Little-Endian-Floats handelt.
in = "\[\x0e\xb1C>J\x04\x06?Cf\x05?\x13\xdb\r?l\xa7->h?\xd2>\x83\x8d\xee>pVF>oC\xde>\x9b\x1b\xcb>\xf7k\xc3>:\x8b:>\xe4N!?Ti\x04?\x84pU>\x1a\x92\xef>!P\x0f?\xba\xf7\xf2>u\xe6!>\x91B\t?*?\x06?\x07\xa1$>a\x1d\xec>7\x15\xe0>?\x9f\xf9>\xf4\xe2[>\x86\xca\xee>\xd38\x00?kWT>\x06C\xf4>S@\x0f?\xc4\t\x05?\xd0P\x1c>\x97\x96\x00?z1\x04?`%>>\xc1\x8d\x16?\x1a\x80\xfa>M\xbc\x1b?\xfaUC>5|\x00?\xb8o\xf6>_.Z>\x0c\xb2\xe0>\x0bf\xe8>\x8f(\x0c?\xdf\x13$>\xd0\xd5\xda>N?\xe9>\xe3:5>\xf0z\x0f?\x90(\xf8>\t\xb8\x12?\x9eZD>\x16t\x11?{l\xf4>\xac\xd8U>\xa40\xdb>\r\xbe\x01?\n\xd5\x07?I\xd3[>\xfc1\x11?EN\n?\x02\x92^>{#\x0c?\xb8\x1d\x00?0\xc4\x14?a\x004>\x84m\x0e?L\x1c\n?9\x1aV>GD\xe7>v\x80\x06?$k\xff>3\xc0,>l\x8f\xd3>f\xab\xe3>\xd9\'k>\xa9H\xe5>\xb2;\xdd>Y9\xfb>\xae\x1c1>\xd8\x05\xf3>\xc07\xfa>\xd0\x19X>R\x10\xff>\x96\xe8\x06?|B\xe8>\xbbJ<>)>\x13?\xf3p\xee>\x7f\x916>f#\x00?5z\xd8>\xed\x0c\x04?\x87$<>\x01n\x1c?\x199\x15?\xe8iL>\xd8I\xf4>"\xb7\xeb>I)\x0b?\xca\xd4)>\x15G\xdf>T\xcb\x1a?`L">\x1d7\x04?^\xa1\xf7>\x9dr\xf8>Cg?>*Z\x11?\xe9q\x0e?\x1e4Q>@H\x03?k\xcf\x00?\x89\x82\x03?\x8e\xa0A>DT\x11?\xcb \xeb>\x8c87>\x1f#\x0b?\xdc\xd2\x12?\xb6u\xee>)\t:>b$\x1f?A\x92\x05?\xb8pw>.\xd0\x1e?\x82\x90\xf7>pM\x13?\xd6\xb9r>H\xe6\xf7>~)\x00?\x9f\x94?>\n>\x11?\x83\x92\xef>\xf0m\x0c?\xc6\xab=>\xd0\xaa\x04?j\x89\x03?]\";
asciihex = substitute(in, "~", "~7E", "\x", "~");
b = char to blob(asciihex, "ascii~hex" );
m = blob to matrix(b, "float", 4, "little");
show(m[1::10]);
// m[Index(1, 10)] = [0.191105097532272, 0.523502945899963, 0.521091639995575, 4.3744989849699e+30, 1.90337728217527e-11, -205521911808, -2.18980242269506e+28, 13724.060546875, -3.52063568238294e+18, -10197822];