Un cliente ha inviato questo esempio di un array in formato binario e di testo
Binario:
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?'
Testo (decodificato utilizzando i panda):
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])
I dati vengono archiviati in un database in forma binaria per motivi di dimensioni/convenienza. Si chiedevano se esistesse un modo per riportarlo in numeri utilizzabili all'interno di JMP. Ho pensato che potremmo essere in grado di trattarlo come un BLOB e procedere in quel modo, ma non ho avuto fortuna.
Pensieri del gruppo su cosa potremmo essere in grado di fare?
Migliore,
M
Il trucco è convertire quella stringa in una codifica supportata da Char to Blob(). Fortunatamente, "ascii-hex" è vicino alla loro codifica. Il Blob to Matrix può fare la sua magia.
Devi anche conoscere il formato dei float. Un po 'di prove ed errori suggerisce che sono float little-endian a 4 byte.
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];