Python binary data reading -
एक urllib2 अनुरोध नीचे द्विआधारी प्रतिक्रिया प्राप्त करता है:
00 00 00 01 00 04 41 4 डी 54 44 00 00 00 00 02 41 97 33 33 41 99 5 सी 29 41 9 3 डी 71 41 91 डी 7 0 ए 47 0 एफ सी 6 14 00 00 01 16 6 ए ई0 68 80 41 93 बी 4 05 41 97 1 ई बी 8 41 90 7 ए ई 1 41 96 8F 57 46 E6 2E 80 00 00 01 16 7 ए 53 7 सी 80 एफएफ एफएफ
इसकी संरचना है:
डेटा, प्रकार, विवरण 00 00 00 01 , 4 बाइट, प्रतीक गणना = 1 00 04, 2 बाइट्स, प्रतीक लंबाई = 4 41 4 डी 54 44, 6 बाइट्स, प्रतीक = AMTD 00, 1 बाइट, त्रुटि कोड = 0 (ओके) 00 00 00 02, 4 बाइट्स, बार गणना = 2 प्रथम बार 41 97 33 33, 4 बाइट्स, बंद = 18.90 41 99 5 सी 29, 4 बाइट्स, उच्च = 1 9 .17 41 9 3 डी 71, 4 बाइट्स, लो = 18.03 41 91 डी 7 0 ए, 4 बाइट्स, ओपन = 18.23 47 0 एफ सी 6 14, 4 बाइट्स, वॉल्यूम = 3,680,608 00 00 01 16 6 ए ई0 68 80, 8 बाइट्स, टाइमस्टैम्प = नवंबर 23,2007 दूसरा बार 41 9 3 बी 4 05, 4 बाइट्स, क्लोज़ = 18.4629 41 9 7 1 ई बी 8, 4 बाइट्स, हाई = 18.8 9 41 90 7 ए ई 1, 4 बाइट्स, लो = 18.06 41 96 8 एफ 57, 4 बाइट्स, ओपन = 18.82 46 ई 2 2 ई 80, 4 बाइट्स, वॉल्यूम = 2,946,325 00 00 01 16 7 ए 53 7 सी 80, 8 बाइट्स, टाइमस्टैम्प = नवंबर 26,2007 टर्मिनिटर एफएफ एफएफ, 2 बाइट्स,
<
अपडेट:
मैंने पहले 6 बाइट्स पर निम्न कोड वाले स्ट्रक्चर मॉड्यूल की कोशिश की:
/ P> struct.unpack ('ih', response.read (6))
struct.unpack ('ih', response.read (6))
(16777216, 1024)
लेकिन यह चाहिए आउटपुट (1, 4) मैं मैनुअल पर एक नज़र डालता हूं लेकिन मुझे पता नहीं था कि गलत क्या था।
& gt; & gt ; & gt; डेटा '\ x00 \ x00 \ x00 \ x01 \ x00 \ x04AMTD \ x00 \ x00 \ x00 \ x00 \ x02A \ x9733A \ x99 \\) ए \ x90 = qA \ x91 \ xd7 \ nG \ x0f \ xc6 \ x14 \ x00 \ x00 \ X01 \ x16j \ xe0h \ x80A \ x93 \ xb4 \ x05A \ x97 \ x1e \ xb8A \ x90z \ xe1A \ x96 \ x8fWF \ XE6 \ x80 \ x00 \ x00 \ X01 \ x16zS |। \ x80 \ xff \ xff '& Gt; & gt; & gt; संरचना आयात के बिना, कैलकसीस और gt; & gt; & gt; Scount, slength = unpack ("IH", डेटा [: 6])> gt; & gt; & gt; स्काउंट जोर दें == 1> & gt; & gt; & gt; प्रतीक, error_code = unpack ("!% Dsb"% slength, डेटा [6: 6 + स्लैथ + 1]) & gt; & gt; & gt; त्रुटिग्राही को निर्दिष्ट करें == 0> gt; & gt; & gt; प्रतीक 'AMTD' & gt; & gt; & gt; Bar_count = unpack ("I!", डेटा [6 + स्लेगैण्ड + 1: 6 + स्लैथ + 1 + 4]) & gt; & gt; & gt; बारकाउंट (2,) & gt; & gt; & gt; Bar_format = "! 5fQ"> gt; & gt; & gt; संग्रह आयात से नामित टप्ले & gt; & gt; & gt; बार = नामित ट्यूपल ("बार", "उच्च ऊंची खुली मात्रा का टाइमस्टैम्प बंद करें") & gt; & gt; & gt; B = बार (* अनपैक (बार-फार्मेट, डेटा [6 + स्लैथ + 1 + 4: 6 + स्लैथ + 1 + 4 + कैलसीस (बार-फार्मेट)])))> gt; & gt; & gt; बी बार (क्लोज़ = 18.899999618530273, हाई = 1 9 .170000076293945, लो = 18.030000686645508, ओपन = 18.229999542236328, वॉल्यूम = 36806.078125, टाइमस्टैम्प = 1195794000000L)> gt; & gt; & gt; आयात समय & gt; & gt; & gt; Time.ctime (b.Timestamp // 1000) 'शुक्र नाउ 23 08:00:00 2007' & gt; & gt; & gt; इंट (बी। वॉल्यूम * 100 + 0.5) 3680608
Comments
Post a Comment