2012-04-03 4 views
0

이미 포함 된 JSON 파일에서 None'None' (작은 따옴표)으로 변경하고 싶습니다.부분 문자열 없음을 '없음'으로 바꿉니다.

type: None or 
type: 'None' 

시도했지만 작동하지 않는 것 같습니다. 한가 직접 ' 뒤에되지 않는

import re 

test = "type: None or 'None'" 

result = re.sub(r"None(?!')", r"'None'", test) 

None 일치하는 것 :

답변

3

당신은 그냥 JSON 문자열로 str.replace을 사용하여 쉽게되지 않을 것, 모든 None'None'로 변경되기 때문에? 나는 두 가지 절차를 거치며, 먼저 'None'에서 None으로 변경 한 다음 None'None'으로 변경합니다.

+0

thats 내가 지금하고있는 일은 확실하지만 정규식이 모든 것을 한 번에 할 수 있다고 확신합니다. – daydreamer

2

당신은 부정적 예측 주장 (?!...)를 사용할 수 있습니다.

→ Regular Expression Syntax ←

+1

또한 변화하고있다'' 'None'''은''하는'None'''' –

+0

@He SHIMING 실례합니다, 나는 그것을 업데이트되었습니다. –

+0

두 번째 예제는 None 바로 앞이나 뒤에있는 문자를 '문자로 바꿉니다. "(1, None, 2)"과 같은 것은 "(1'None'2)"이됩니다. 원래 JSON 파일에는 문제가되지 않을 수 있습니다. None의 인스턴스 주위에는 항상 공백이있을 수 있지만 언급할만한 가치가 있다고 생각했습니다. –

0
s/([^'])?(None)([^'])?/$1'$2'$3/g