Garth J Lancaster
Есть много библиотек и т. д. которые вы можете использовать Интеграция API в Python – часть 1 – реальный Python[^] &усилитель; Написание клиента REST на Python[^] например
DigitalOcean (как обычно) также имеет хорошую статью Как использовать веб-API в Python 3 | DigitalOcean[^]
- это два голоса за библиотеку "запросы"
Кстати, есть отличный инструмент, который вы можете использовать для тестирования REST API (то есть в качестве клиента), называемый "почтальон" - его стоит скачать и использовать для проверки вызова, данных и т. д https://www.postman.com/downloads/[^]
Интересно, что аутентификация не требуется, но использование этого URL-адреса напрямую (который postman затем идентифицирует два параметра запроса startTs &endTs) дает (усеченный)
[
{
"blobJson": "[{'deviceTimestamp': 166150, 'x': 3.8919, 'y': -8.6865, 'z': -3.3077}, {'deviceTimestamp': 166170, 'x': 4.2998, 'y': -9.8624, 'z': -2.0769}, {'deviceTimestamp': 166190, 'x': 0.74341, 'y': -9.4483, 'z': 0.57692}, {'deviceTimestamp': 166210, 'x': 0.73178, 'y': -9.5004, 'z': 3.0769}, {'deviceTimestamp': 166230, 'x': 3.5538, 'y': -9.7006, 'z': 3.3077}, {'deviceTimestamp': 166250, 'x': -1.4629, 'y': -7.0692, 'z': 2.2308}, {'deviceTimestamp': 166260, 'x': -6.7571, 'y': -5.0299, 'z': -0.076923}, {'deviceTimestamp': 166280, 'x': -5.0319, 'y': -6.5896, 'z': -0.076923}, {'deviceTimestamp': 166300, 'x': -0.21122, 'y': -8.9002, 'z': 2.5}, {'deviceTimestamp': 166320, 'x': 6.3477, 'y': -9.3142, 'z': 4.5385}, {'deviceTimestamp': 166340, 'x': 10.904, 'y': -9.9498, 'z': 5.6538}, {'deviceTimestamp': 166360, 'x': 9.5501, 'y': -8.5014, 'z': 5.6923}, {'deviceTimestamp': 166380, 'x': 7.7312, 'y': -8.5973, 'z': 5.6154}, {'deviceTimestamp': 166400, 'x': 8.9783, 'y': -10.132, 'z': 4.7692}, {'deviceTimestamp': 166420, 'x': 9.8307, 'y': -11.159, 'z': 5.0385}, {'deviceTimestamp': 166440, 'x': 7.7934, 'y': -10.556, 'z': 5.8077}, {'deviceTimestamp': 166460, 'x': 5.8261, 'y': -10.259, 'z': 2.8462}, {'deviceTimestamp': 166480, 'x': 4.4837, 'y': -10.092, 'z': 1.6538}, {'deviceTimestamp': 166500, 'x': 5.5556, 'y': -11.08, 'z': 1.8462}, {'deviceTimestamp': 166520, 'x': 8.4009, 'y': -12.06, 'z': 1.0}, {'deviceTimestamp': 166540, 'x': 8.9573, 'y': -12.456, 'z': -0.73077}, {'deviceTimestamp': 166560, 'x': 8.2957, 'y': -14.59, 'z': -1.9231}, {'deviceTimestamp': 166580, 'x': 6.9804, 'y': -14.953, 'z': -2.3077}, {'deviceTimestamp': 166600, 'x': 6.6967, 'y': -13.515, 'z': -0.5}, {'deviceTimestamp': 166620, 'x': 9.6361, 'y': -14.48, 'z': 0.076923}, {'deviceTimestamp': 166640, 'x': 10.407, 'y': -15.51, 'z': 0.15385}, {'deviceTimestamp': 166660, 'x': 10.14, 'y': -15.447, 'z': -0.96154}, {'deviceTimestamp': 166670, 'x': 10.684, 'y': -14.821, 'z': -0.5}, {'deviceTimestamp': 166690, 'x': 11.048, 'y': -15.117, 'z': 0.34615}, {'deviceTimestamp': 166710, 'x': 8.4361, 'y': -13.489, 'z': 0.38462}, {'deviceTimestamp': 166730, 'x': 5.8655, 'y': -12.051, 'z': 0.57692}, {'deviceTimestamp': 166750, 'x': 2.3597, 'y': -10.318, 'z': 0.46154}, {'deviceTimestamp': 166770, 'x': -0.62984, 'y': -7.8898, 'z': 0.11538}, {'deviceTimestamp': 166790, 'x': -2.7007, 'y': -5.8762, 'z': -0.30769}, {'deviceTimestamp': 166810, 'x': -3.7714, 'y': -4.7735, 'z': -0.5}, {'deviceTimestamp': 166830, 'x': -4.9101, 'y': -5.2045, 'z': -0.15385}, {'deviceTimestamp': 166850, 'x': -4.8295, 'y': -4.2244, 'z': 1.6154}, {'deviceTimestamp': 166870, 'x': -5.7695, 'y': -2.9912, 'z': 2.8077}, {'deviceTimestamp': 166890, 'x': -5.2339, 'y': -3.1535, 'z': 1.4231}, {'deviceTimestamp': 166910, 'x': -4.6184, 'y': -4.11, 'z': 1.3077}, {'deviceTimestamp': 166930, 'x': -4.0096, 'y': -4.637, 'z': 1.8462}, {'deviceTimestamp': 166950, 'x': -1.5587, 'y': -6.1456, 'z': 2.3846}, {'deviceTimestamp': 166970, 'x': 1.9769, 'y': -9.0787, 'z': 1.6923}, {'deviceTimestamp': 166990, 'x': 3.6063, 'y': -11.394, 'z': 3.1923}, {'deviceTimestamp': 167010, 'x': 8.8673, 'y': -12.291, 'z': 4.3846}, {'deviceTimestamp': 167030, 'x': 17.873, 'y': -15.767, 'z': 5.3846},
что вы можете затем разобрать / преобразовать в объекты / использовать в противном случае
Garth J Lancaster
да, это возможно, но я не работаю с Python все время, поэтому, на первый взгляд, и заметив, что blobJson имеет одинарные кавычки в JSON, попробуйте это
blobJson = parsed[0]["blobJson"]
blobJson = blobJson.replace("'", '"')
parsedbj = json.loads(blobJson)
print("[0].x = ", parsedbj[0]["x"])
print("[0].y = ", parsedbj[0]["y"])
print("[0].z = ", parsedbj[0]["z"])
print("[1].x = ", parsedbj[1]["x"])
print("[1].y = ", parsedbj[1]["y"])
print("[1].z = ", parsedbj[1]["z"])
вместо "print(json.dumps(parsed, indent=1))"
Мой способ, вероятно, не очень эффективен, скорее всего, есть библиотека python, которая может сделать то же самое, я просто "следовал" за структурой данных после первого синтаксического анализа, вытащил и исправил необходимый фрагмент (blobJson), чем проанализировал его из json, чтобы получить список объектов словаря