数百から数千行の大量のデータを受け取ります。フォーマットは同じで、約 50 行のデータで、同じタイプのデータが繰り返されます。データが何を表しているかはわかっていますが、受信したデータにはこれが含まれていません。
したがって、受信したデータは次のようになります。
Value(int): 703
Value(int): 12
Value(int): 58
Value(int): 0
Value(int): -1
Value(int): 88
Value(string): 272
Value(string): 01
Value(int): 61
Value(int): 0
Value(int): 0
しかし、私はそれぞれが何を意味するかを知っています。
fcn:Integer
Range: 0 to 16383
Code:Integer
Range: 0 to 511
CountryCode:String
^\d{3}$
NetworkCode:String
これらの繰り返し、このデータを解析して、各繰り返しシリーズの最初の要素などを比較して比較できるようにする簡単な方法は何ですか? 構造体を作ることはできますか?辞書が必要ですか、それともどうすればいいですか? この種の質問が許可されているかどうかはわかりませんが、基本的には、どのように行うのか、またその理由を知りたいと思っています。
ここに繰り返しデータの 1 つのラウンドがあります。各値の各名前が何であるかにこだわっています。したがって、私が受け取っているところは、それが次Value(int): 1
のことであることがわかりBand Name
ます。
Band Name:
Value(int): 1
Cell Scan Time
Value(string): 2013-04-03T08:21:10Z
Sequence:
Sequence:
ARFCN/UARFCN --->2112.8 MHz DL / 1922.8 MHz UL
Value(int): 10564
RSSI
Value(int): 39
BSIC/SCODE
Value(int): 263
RXQUAL
Value(int): 0
FREQ OFFSET
Value(int): 9
FREQ QUAL
Value(int): 90
MCC
Value(string): 272
MNC
Value(string): 05
LAC
Value(int): 67
RAC
Value(int): 67
RNC Identity
Value(int): 708
Cell ID
Value(int): 130
CPICH TX POWER
Value(int): 31
Patch Loss
Value(int): 102
CPICH EC over N0
Value(int): -5
CPICH RSCP
Value(int): -76
RXLEV + CPICH EC
Value(int): 0
TX Diversity
QQUAL MIN
Value(int): -20
QRXLEV MIN
Value(int): -111
HCS Priority
Value(int): -1
DeltaQHcsRscp
Value(int): -1
Scan Temperature
Value(int): 0
以下は、受信したデータの数セットごとに 1 回だけ繰り返され、残りは常に同じ形式で繰り返されます。
Band Name:
Value(int): 1
Cell Scan Time
Value(string): 2013-04-03T08:21:10Z
Sequence:
Sequence:
完全な出力サンプル: http://pastebin.com/ArGfm2cD
編集:
現在、データを変数に保存しています。
proc = subprocess.Popen(cmd_rancli, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc_stdout = proc.communicate(ran_opt_get_access_data)[0]
print proc_stdout