Removing Leading And Trailing Backlash In Key Value In Json Documents
I have the following JSON structure. 'bent': '{        \'ActiveT\': 6,         \'ErrorM\': \'None\',         \'Except\': \'None\',         \'HadErr\': \'false\',         \'HM\': 62
Solution 1:
Using re.sub
>>> print re.sub(r'\\(?=")', '', string)
"bent": "{
       "ActiveT": 6,
        "ErrorM": "None",
        "Except": "None",
        "HadErr": "false",
        "HM": 62,
        "NHM": 57,
        "Parameter": "14331232706",
        "ReturnCode": "3050",
        "Severity": "info",
        "Timestamp": "Tue July0209: 58: 16NZST2015",
        "TId": "9891319709",
        "UserInfo": "Unknown",
    }
Regex explanation
- \\Matches the- \
- (?=")Positive look ahead. Checks if the- \is followed by- "
- Replace it with empty string. 
OR
Using string.replace
>>> print string.replace('\\"', '"')
"bent": "{
       "ActiveT": 6,
        "ErrorM": "None",
        "Except": "None",
        "HadErr": "false",
        "HM": 62,
        "NHM": 57,
        "Parameter": "14331232706",
        "ReturnCode": "3050",
        "Severity": "info",
        "Timestamp": "Tue July0209: 58: 16NZST2015",
        "TId": "9891319709",
        "UserInfo": "Unknown",
    }
Solution 2:
Using regular expressions here sounds like the wrong approach. If this was actual JSON data (I assume the { and } are missing from your example) the right answer is to parse it properly:
d1 = json.loads(data)
d2 = json.loads(d1['bent'])
Post a Comment for "Removing Leading And Trailing Backlash In Key Value In Json Documents"