2016-09-20 5 views
0

파이썬 함수의 출력 결과를 PHP로 옮긴 다음 JSON으로 변환하여 AJAX로 호출하는 자바 스크립트 함수로 보냅니다.특정 패턴의 문자열에서 여분의 문자 제거 PHP

형식은 다음과 같아야합니다 : 지금

{"data_name" : [1.02, 3.013, -24.12, 39], "data_name_2" : [-0.32151], "data_name_3" : [0.321, -21.42425, 225125.002]} 

는, 파이썬은 json.dumps을 통해 데이터를 반환하고 출력이 가지 이상이 PHP에 도달하면입니다. 데이터가 이미 파이썬에서 JSON되어 있기 때문에, json_encode이 제대로 작동하지만 바로 JSON 데이터는이 생산 반향하지 않습니다

"[{\"data_name\" : [[1.02], [3.013], [-24.12], [39]]}, {\"data_name_2\" : -0.32151}, {\"data_name_3\" : [[0.321], [-21.42425], [225125.002]]}, null]" 

어떻게 나는 다음과 같은 일을 할 수 있습니까?

  1. 모든 백 슬래시를 제거 문자열의 시작 부분에서 첫 번째 "[를 제거 따옴표
  2. (첫 번째 제외) 각 필드에서 }, {을 제거 (그래서 \"data_name\""data_name"가된다)
  3. 2D 배열의 경우 내부 [[1.02], [2.02]][1.02, 2.02]
  4. 이되도록 [] 기호를 제거하십시오. 단일 숫자의 경우주변 452,496,183,210, 그래서 -0.32151 내가 }, null]"에 도달하면, 내가 , null]"를 제거하고 단지 말 }을 유지하려면, 마지막으로
  5. [-0.32151]된다.

나는 strpos에 대해 조금 이해하지만 난 정규식의 형태로 그를 통합 할 수있는 방법을 잘 모르겠어요, 아니면 문자열을 통해 수동 루프를 필요로하는 경우의 각 단계 돌봐. 누군가가 시작하는 방법에 대한 아이디어가 있다면 그것을 고맙게 생각할 것입니다.

+1

"내 데이터가 부적절하게 인코딩되었습니다"에 대한 올바른 수정은 인코딩 된 텍스트의 변경 사항에 대해 골치 거리가 아니며 데이터 사전 인코딩 또는 포스트 디코딩을 수정하는 것입니다. – Sammitch

+0

다음 페이지에서 사용해보십시오. http://stackoverflow.com/a/8635181/3541922 – MikeVelazco

+1

JSON이 표준으로, PHP 또는 지원 언어로 읽을 수 있어야합니다. 양쪽에서 코드를 확인하십시오. – MikeVelazco

답변

0

나는 Sammitch에 동의합니다.

2에 대한 빠른 수정 나머지, 당신은 제대로 필터링하지만, 왜 그냥 파이썬 출력을 변경할 수 있습니다 preg_replace와 패턴을 만들 수 있습니다에 대한 stripslashes

입니까?