dicts의 목록에 문자열을 구문 분석 :나는이처럼 보이는 문자열을
POLYGON ((148210.445767647 172418.761192525, 148183.930888667 172366.054787545, 148183.866770629 172365.316772032, 148184.328078148 172364.737139913, 148220.543522168 172344.042601933, 148221.383518338 172343.971823159), (148221.97916844 172344.568316375, 148244.61381946 172406.651932395, 148244.578100039 172407.422441673, 148244.004662562 172407.938319453, 148211.669446582 172419.255646473, 148210.631989339 172419.018894911, 148210.445767647 172418.761192525))
난 쉽게 숫자에 초점을 문자열에서 POLYGON
을 제거 할 수 있지만 나는 좀 궁금하네요 무엇 이 문자열을 dict 목록으로 파싱하는 가장 쉽고/좋은 방법이 될 것입니다.
첫 번째 괄호 (POLYGON 바로 다음)는 여러 요소를 제공 할 수 있음을 나타냅니다 (쉼표 ,
으로 구분).
따라서 각 쌍의 숫자는 각각 x
및 y
입니다.
python 2.7
를 사용하여) 다음과 같은 데이터 구조 결국이 문자열을 구문 분석 싶습니다 점
list [ //list of polygons
list [ //polygon n°1
dict { //polygon n°1's first point
'x': 148210.445767647, //first number
'y': 172418.761192525 //second number
},
dict { //polygon n°1's second point
'x': 148183.930888667,
'y': 148183.930888667
},
... // rest of polygon n°1's points
], //end of polygon n°1
list [ // polygon n°2
dict { // polygon n°2's first point
'x': 148221.9791684,
'y': 172344.568316375
},
... // rest of polygon n°2's points
] // end of polygon n°2
] // end of list of polygons
다각형 '수는 사실상 무한하다.
각 포인트의 번호는 공백으로 구분됩니다.
루프 나 반복적 인 방식으로이 작업을 수행하는 방법을 알고 계십니까?
추신 : 나는 일종의 비단뱀 초심자이다. (내 벨트 아래 몇 달 밖에 안되기 때문에) 자세히 설명하는 것을 망설이지 말라. 고맙습니다!
문자열 '와 같은 문자열 메커니즘을 사용하고 내 마음에 오는 유일한 해결책 [XX : XX]'또 다시 함께 string.index'와 ('문자 ')'하지만 난 그렇게 본 적이 파이썬 devs에서 많은 예쁜 솔루션 그래서 내가 거기에 더 예쁜 솔루션이 있어야합니다 믿습니다.나는 사람들이 실제로 나를 위해 일하도록 요구하는 것이 아니지만, 한두 가지가 굉장 할 것입니다. –