Как мне разобрать число из этой возвращенной строки XML в python? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть следующая строка:

{\"Id\":\"135\",\"Type\":0}

Число в поле Id будет меняться, но всегда будет целым числом без разделителя запятых. Я не уверен, как получить только это значение из этой строки, учитывая, что это строковый тип данных, а не реальный "XML". Я играл с функцией replace (), но специальные символы делают его более сложным, чем кажется.

есть ли способ преобразовать это в XML или что-то, на что я могу сослаться значение Id напрямую?

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Может быть, использовать регулярное выражение, например,

import re

txt = "{\"Id\":\"135\",\"Type\":0}"
x = re.search('"Id":"([0-9]+)"', txt)
if x:
    print(x.group(1))

дает

135

Здесь предполагается, что идентификаторы являются цифрами c и состоят как минимум из одного ди git.

0 голосов
/ 24 марта 2020

Ответ без регулярного выражения, как вы просили

\" - это escape-последовательность в python.

Так что, если {\"Id\":\"135\",\"Type\":0} - необработанная строка и если вы поместите его в переменную python, например

a = '{\"Id\":\"135\",\"Type\":0}'

, то получите

>>> a
'{"Id":"135","Type":0}'

ИЛИ

Если приведенная выше строка равна python строка с \", которая уже экранирована, затем выполните a.replace("\\",""), которая даст вам строку без \.

Теперь просто загрузите эту строку в элемент dict и access Id, как показано ниже .

import json
d = json.loads(a)
d['Id']

Вывод:

135
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...