#python #json #http #request #response
#python #json #http #запрос #ответ
Вопрос:
Я потратил много времени, пытаясь исправить это, но все равно безуспешно. буду признателен, если вы сможете помочь.
Это на Python
Когда я запускаю это:
import requests
import json
response = requests.post(url)
response.text
Я понимаю это:
‘n n n n{nVisitCount: «9 992»,ntotalCount: «18 018»,nnotiList: [n n],nPassed: false n}’
Если я запущу это:
print(response.text)
Я понимаю это:
{ visitCount: «9 992», totalCount: «18 018 455», notiList : [
], Передано : false }
В конечном счете я стремлюсь извлечь число 9 992. Я подумал, что самый простой способ — преобразовать это в json, но, похоже, это не работает.
Когда я запускаю:
response.json() or json.loads(response.text)
Я понимаю это:
Ошибка JSONDecodeError: ожидаемое имя свойства, заключенное в двойные кавычки: строка 6 столбец 1 (символ 6)
Вероятно, это связано с тем, что в ответе отсутствуют двойные кавычки.
- как я могу исправить эту проблему, возможно, добавив двойные кавычки в ответ?
- есть ли более простой способ извлечения числа, которое в данном случае равно 9 992?
Ответ №1:
Вы можете использовать регулярные выражения:
import re
number_string = re.findall("VisitCountW :W .*?([0-9,] ).*", response.text.strip())[0]
выдает number_string
как
9,992
Если вы хотите преобразовать его в int
:
number = int(number_string.replace(",", ""))
Комментарии:
1. Если проблема решена, пожалуйста, отметьте ответ как принятый, чтобы закрыть его.