programing

json을 사용하여 튜플을 인코딩하는 가장 좋은 방법

sourcejob 2023. 3. 10. 21:27
반응형

json을 사용하여 튜플을 인코딩하는 가장 좋은 방법

python에서는 tuples를 tuples 목록에 매핑하는 사전이 있습니다.

{(1,2): [(2,3),(1,7)]}

javascript를 사용하여 이 데이터를 인코딩할 수 있도록 하고 싶어서 json을 조사했는데 키가 문자열이어야 하기 때문에 탭이 키로 동작하지 않습니다.

이것을 처리하는 가장 좋은 방법은 "1,2"로 인코딩한 후 Javascript에서 원하는 것으로 해석하는 것입니까?아니면 이것을 다루는 더 현명한 방법이 있을까요?

이렇게 말하는 것을 고려해보세요.

{"[1,2]": [(2,3),(1,7)]}

그 후 값을 제공해야 할 경우 키 자체를 JSON 개체로 해석할 수 있습니다.이것은 최신 브라우저의 모든 빌트인에서 실행할 수 있습니다.JSON.parsemethod (사용하고 있다)jQuery.each여기서 반복하지만 무엇이든 사용할 수 있습니다.):

var myjson = JSON.parse('{"[1,2]": [[2,3],[1,7]]}');
$.each(myjson, function(keystr,val){
    var key = JSON.parse(keystr);
    // do something with key and val
});

한편, 예를 들어 오브젝트를 다른 방법으로 구성하는 것이 좋습니다.

{1: {2: [(2,3),(1,7)]}}

라고 말하는 대신

myjson[1,2] // doesn't work

잘못된 Javascript 구문입니다.

myjson[1][2] // returns [[2,3],[1,7]]

키 튜플이 진정한 정수 쌍인 경우 가장 쉽고 가장 간단한 방법은 제안대로입니다.문자열로 인코딩합니다.이 작업은 원라이너로 수행할 수 있습니다.

>>> simplejson.dumps(dict([("%d,%d" % k, v) for k, v in d.items()]))
'{"1,2": [[2, 3], [1, 7]]}'

이를 통해 javascript 데이터 구조를 얻을 수 있으며, 그 키를 분할하여 포인트를 다시 얻을 수 있습니다.

'1,2'.split(',')

권장사항은 다음과 같습니다.

{ "1": [
        { "2": [[2,3],[1,7]] }
       ]
}

아직 구문 분석 중이지만 사용 방법에 따라 이 형식이 더 쉬울 수 있습니다.

JSON에서는 어레이를 키로 사용할 수 없습니다.당신이 할 수 있는 최선은 그것을 인코딩하는 것이다.미안하지만, 다른 제정신적인 방법은 없어.

단순히 2차원 배열일 수도 있나요?그러면 정수를 키로 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/715550/best-way-to-encode-tuples-with-json

반응형