JSON 데이터를 해독하여이 결과를 얻었습니다.Perl에서 해시의 역 해시
이제이 데이터 구조를 바꾸고 Perl을 사용하여 인쇄하려고합니다.
누구든지 아래의 코드 스 니펫을 사용하여 도움을받을 수 있습니까?
이 변수를 한 변수에 넣었습니다.
$VAR1 = {
'Packet Loss to Source' => {
'142' => {
'161' => '0.000',
'162' => '0.000',
'141' => '0.000'
}
},
'Packet Loss to Destination' => {
'142' => {
'161' => '0.000',
'162' => '0.000',
'141' => '0.000'
}
},
'Average Jitter to Source' => {
'142' => {
'161' => '13.323',
'162' => '37.003',
'141' => '192.309'
}
},
'Availability' => {
'142' => {
'161' => '0.000',
'162' => '0.000',
'141' => '1.042'
}
},
'Average Round Trip Time' => {
'142' => {
'161' => '772.278',
'162' => '389.566',
'141' => '8557.511'
}
},
'Average Jitter to Destination' => {
'142' => {
'161' => '13.323',
'162' => '37.003',
'141' => '192.309'
}
}
};
이 내가 출력을 얻기 위해 노력하는 코드입니다 : 내 출력은 내가 다음과 같습니다 해시의 해시를
아래에 표시됩니다. 텍스트 파일을 읽고 JSON 데이터를 얻은 다음 디코드하여 인쇄합니다. 위의 결과는 변수 $perl_obj
에 있습니다. 즉 교환 키와 값을 포함하기 때문에
#my $dirname = "/home/brix/ravikiran/doc/demo.txt";
my $dirname = "/home/brix/ravikiran/doc/JSONData.txt";
open HANDLE, $dirname;
my @raw_data = <HANDLE>;
my $json_text;
foreach my $row (@raw_data) {
$json_text .= $row;
}
close(HANDLE);
print "$json_text;\n";
my $json = JSON::XS->new();
$json = json->pretty(1)->
space_before(1)->
space_after(1)->
canonical(1)->
allow_blessed(1)->
convert_blessed(1);
my $perl_obj = $json->decode($json_text);
print STDOUT Dumper($perl_obj);
뜻 여기
는 외부 두 레이어를 교환 할 수있는 방법입니다 "역"? '161'=> '0.000', '162'=> '0.000'은 키 -> 값, 값 -> 키이므로 값이 동일하고 서로 겹치기 때문에 되돌릴 수 없다는 것을 알고 있습니다. . – TLP
게시하기 전에 적어도 읽을 수있는 수준으로 질문을 만드십시오. – sidyll
실제 질문은 무엇입니까? 코드 및 출력을 제공했지만 오류는 없습니다. '데이터 구조를 뒤집는 방법'을 묻는다면, 그 의미를 명확히해야 할 것입니다. – RickF