diff --git a/src/apify_client/_utils.py b/src/apify_client/_utils.py index 04f1fdf0..e33b76d1 100644 --- a/src/apify_client/_utils.py +++ b/src/apify_client/_utils.py @@ -262,7 +262,7 @@ def maybe_parse_response(response: Response) -> Any: try: if is_content_type_json(content_type): - response_data = jsonlib.loads(response.text) + response_data = response.json() elif is_content_type_xml(content_type) or is_content_type_text(content_type): response_data = response.text else: diff --git a/src/apify_client/clients/base/actor_job_base_client.py b/src/apify_client/clients/base/actor_job_base_client.py index aed80855..abf7e274 100644 --- a/src/apify_client/clients/base/actor_job_base_client.py +++ b/src/apify_client/clients/base/actor_job_base_client.py @@ -1,7 +1,6 @@ from __future__ import annotations import asyncio -import json as jsonlib import math import time from datetime import datetime, timezone @@ -38,7 +37,7 @@ def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: method='GET', params=self._params(waitForFinish=wait_for_finish), ) - job = parse_date_fields(pluck_data(jsonlib.loads(response.text))) + job = parse_date_fields(pluck_data(response.json())) seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) if ActorJobStatus(job['status']).is_terminal or ( @@ -69,7 +68,7 @@ def _abort(self, *, gracefully: bool | None = None) -> dict: method='POST', params=self._params(gracefully=gracefully), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) class ActorJobBaseClientAsync(ResourceClientAsync): @@ -92,7 +91,7 @@ async def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: method='GET', params=self._params(waitForFinish=wait_for_finish), ) - job = parse_date_fields(pluck_data(jsonlib.loads(response.text))) + job = parse_date_fields(pluck_data(response.json())) seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) if ActorJobStatus(job['status']).is_terminal or ( @@ -123,4 +122,4 @@ async def _abort(self, *, gracefully: bool | None = None) -> dict: method='POST', params=self._params(gracefully=gracefully), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) diff --git a/src/apify_client/clients/base/resource_client.py b/src/apify_client/clients/base/resource_client.py index 10cf7755..ddf30adf 100644 --- a/src/apify_client/clients/base/resource_client.py +++ b/src/apify_client/clients/base/resource_client.py @@ -1,7 +1,5 @@ from __future__ import annotations -import json as jsonlib - from apify_client._utils import catch_not_found_or_throw, parse_date_fields, pluck_data from apify_client.clients.base.base_client import BaseClient, BaseClientAsync from apify_client.errors import ApifyApiError @@ -19,7 +17,7 @@ def _get(self, timeout_secs: int | None = None) -> dict | None: timeout_secs=timeout_secs, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -35,7 +33,7 @@ def _update(self, updated_fields: dict, timeout_secs: int | None = None) -> dict timeout_secs=timeout_secs, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def _delete(self, timeout_secs: int | None = None) -> None: try: @@ -62,7 +60,7 @@ async def _get(self, timeout_secs: int | None = None) -> dict | None: timeout_secs=timeout_secs, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -78,7 +76,7 @@ async def _update(self, updated_fields: dict, timeout_secs: int | None = None) - timeout_secs=timeout_secs, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def _delete(self, timeout_secs: int | None = None) -> None: try: diff --git a/src/apify_client/clients/base/resource_collection_client.py b/src/apify_client/clients/base/resource_collection_client.py index d8a7e76b..2e9c6063 100644 --- a/src/apify_client/clients/base/resource_collection_client.py +++ b/src/apify_client/clients/base/resource_collection_client.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import Any, Generic, TypeVar from apify_client._utils import parse_date_fields, pluck_data @@ -50,7 +49,7 @@ def _list(self, **kwargs: Any) -> ListPage: params=self._params(**kwargs), ) - return ListPage(parse_date_fields(pluck_data(jsonlib.loads(response.text)))) + return ListPage(parse_date_fields(pluck_data(response.json()))) def _create(self, resource: dict) -> dict: response = self.http_client.call( @@ -60,7 +59,7 @@ def _create(self, resource: dict) -> dict: json=resource, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def _get_or_create(self, name: str | None = None, resource: dict | None = None) -> dict: response = self.http_client.call( @@ -70,7 +69,7 @@ def _get_or_create(self, name: str | None = None, resource: dict | None = None) json=resource, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) class ResourceCollectionClientAsync(BaseClientAsync): @@ -83,7 +82,7 @@ async def _list(self, **kwargs: Any) -> ListPage: params=self._params(**kwargs), ) - return ListPage(parse_date_fields(pluck_data(jsonlib.loads(response.text)))) + return ListPage(parse_date_fields(pluck_data(response.json()))) async def _create(self, resource: dict) -> dict: response = await self.http_client.call( @@ -93,7 +92,7 @@ async def _create(self, resource: dict) -> dict: json=resource, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def _get_or_create( self, @@ -107,4 +106,4 @@ async def _get_or_create( json=resource, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) diff --git a/src/apify_client/clients/resource_clients/actor.py b/src/apify_client/clients/resource_clients/actor.py index a55307b9..28dd62db 100644 --- a/src/apify_client/clients/resource_clients/actor.py +++ b/src/apify_client/clients/resource_clients/actor.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import TYPE_CHECKING, Any, Literal from apify_client._utils import ( @@ -286,7 +285,7 @@ def start( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def call( self, @@ -404,7 +403,7 @@ def build( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def builds(self) -> BuildCollectionClient: """Retrieve a client for the builds of this Actor.""" @@ -435,7 +434,7 @@ async def default_build( ) response = self.http_client.call(url=self._url('builds/default'), method='GET', params=request_params) - data = pluck_data(jsonlib.loads(response.text)) + data = pluck_data(response.json()) return BuildClient( base_url=self.base_url, @@ -706,7 +705,7 @@ async def start( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def call( self, @@ -828,7 +827,7 @@ async def build( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def builds(self) -> BuildCollectionClientAsync: """Retrieve a client for the builds of this Actor.""" @@ -863,7 +862,7 @@ async def default_build( method='GET', params=request_params, ) - data = pluck_data(jsonlib.loads(response.text)) + data = pluck_data(response.json()) return BuildClientAsync( base_url=self.base_url, diff --git a/src/apify_client/clients/resource_clients/build.py b/src/apify_client/clients/resource_clients/build.py index 0c12d5b4..95901c93 100644 --- a/src/apify_client/clients/resource_clients/build.py +++ b/src/apify_client/clients/resource_clients/build.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import Any from apify_client.clients.base import ActorJobBaseClient, ActorJobBaseClientAsync @@ -54,7 +53,7 @@ def get_open_api_definition(self) -> dict | None: method='GET', ) - response_data: dict = jsonlib.loads(response.text) + response_data: dict = response.json() return response_data @@ -130,7 +129,7 @@ async def get_open_api_definition(self) -> dict | None: method='GET', ) - response_data: dict = jsonlib.loads(response.text) + response_data: dict = response.json() return response_data diff --git a/src/apify_client/clients/resource_clients/dataset.py b/src/apify_client/clients/resource_clients/dataset.py index aadf592d..078e568a 100644 --- a/src/apify_client/clients/resource_clients/dataset.py +++ b/src/apify_client/clients/resource_clients/dataset.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib import warnings from contextlib import asynccontextmanager, contextmanager from typing import TYPE_CHECKING, Any @@ -141,7 +140,7 @@ def list_items( params=request_params, ) - data = jsonlib.loads(response.text) + data = response.json() return ListPage( { @@ -559,7 +558,7 @@ def get_statistics(self) -> dict | None: params=self._params(), timeout_secs=_SMALL_TIMEOUT, ) - return pluck_data(jsonlib.loads(response.text)) + return pluck_data(response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -739,7 +738,7 @@ async def list_items( params=request_params, ) - data = jsonlib.loads(response.text) + data = response.json() return ListPage( { @@ -1066,7 +1065,7 @@ async def get_statistics(self) -> dict | None: params=self._params(), timeout_secs=_SMALL_TIMEOUT, ) - return pluck_data(jsonlib.loads(response.text)) + return pluck_data(response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) diff --git a/src/apify_client/clients/resource_clients/key_value_store.py b/src/apify_client/clients/resource_clients/key_value_store.py index 7f74b903..f1d03e96 100644 --- a/src/apify_client/clients/resource_clients/key_value_store.py +++ b/src/apify_client/clients/resource_clients/key_value_store.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from contextlib import asynccontextmanager, contextmanager from http import HTTPStatus from typing import TYPE_CHECKING, Any @@ -106,7 +105,7 @@ def list_keys( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def get_record(self, key: str) -> dict | None: """Retrieve the given record from the key-value store. @@ -424,7 +423,7 @@ async def list_keys( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def get_record(self, key: str) -> dict | None: """Retrieve the given record from the key-value store. diff --git a/src/apify_client/clients/resource_clients/request_queue.py b/src/apify_client/clients/resource_clients/request_queue.py index 7d1b8974..c3ee1bf6 100644 --- a/src/apify_client/clients/resource_clients/request_queue.py +++ b/src/apify_client/clients/resource_clients/request_queue.py @@ -1,7 +1,6 @@ from __future__ import annotations import asyncio -import json as jsonlib import logging import math from collections.abc import Iterable @@ -120,7 +119,7 @@ def list_head(self, *, limit: int | None = None) -> dict: timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def list_and_lock_head(self, *, lock_secs: int, limit: int | None = None) -> dict: """Retrieve a given number of unlocked requests from the beginning of the queue and lock them for a given time. @@ -143,7 +142,7 @@ def list_and_lock_head(self, *, lock_secs: int, limit: int | None = None) -> dic timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def add_request(self, request: dict, *, forefront: bool | None = None) -> dict: """Add a request to the queue. @@ -167,7 +166,7 @@ def add_request(self, request: dict, *, forefront: bool | None = None) -> dict: timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def get_request(self, request_id: str) -> dict | None: """Retrieve a request from the queue. @@ -187,7 +186,7 @@ def get_request(self, request_id: str) -> dict | None: params=self._params(), timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -218,7 +217,7 @@ def update_request(self, request: dict, *, forefront: bool | None = None) -> dic timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def delete_request(self, request_id: str) -> None: """Delete a request from the queue. @@ -264,7 +263,7 @@ def prolong_request_lock( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def delete_request_lock(self, request_id: str, *, forefront: bool | None = None) -> None: """Delete the lock on a request. @@ -353,7 +352,7 @@ def batch_add_requests( timeout_secs=_MEDIUM_TIMEOUT, ) - response_parsed = parse_date_fields(pluck_data(jsonlib.loads(response.text))) + response_parsed = parse_date_fields(pluck_data(response.json())) processed_requests.extend(response_parsed.get('processedRequests', [])) unprocessed_requests.extend(response_parsed.get('unprocessedRequests', [])) @@ -380,7 +379,7 @@ def batch_delete_requests(self, requests: list[dict]) -> dict: timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def list_requests( self, @@ -405,7 +404,7 @@ def list_requests( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def unlock_requests(self: RequestQueueClient) -> dict: """Unlock all requests in the queue, which were locked by the same clientKey or from the same Actor run. @@ -423,7 +422,7 @@ def unlock_requests(self: RequestQueueClient) -> dict: params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) class RequestQueueClientAsync(ResourceClientAsync): @@ -500,7 +499,7 @@ async def list_head(self, *, limit: int | None = None) -> dict: timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def list_and_lock_head(self, *, lock_secs: int, limit: int | None = None) -> dict: """Retrieve a given number of unlocked requests from the beginning of the queue and lock them for a given time. @@ -523,7 +522,7 @@ async def list_and_lock_head(self, *, lock_secs: int, limit: int | None = None) timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def add_request(self, request: dict, *, forefront: bool | None = None) -> dict: """Add a request to the queue. @@ -547,7 +546,7 @@ async def add_request(self, request: dict, *, forefront: bool | None = None) -> timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def get_request(self, request_id: str) -> dict | None: """Retrieve a request from the queue. @@ -567,7 +566,7 @@ async def get_request(self, request_id: str) -> dict | None: params=self._params(), timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -598,7 +597,7 @@ async def update_request(self, request: dict, *, forefront: bool | None = None) timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def delete_request(self, request_id: str) -> None: """Delete a request from the queue. @@ -642,7 +641,7 @@ async def prolong_request_lock( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def delete_request_lock( self, @@ -698,7 +697,7 @@ async def _batch_add_requests_worker( timeout_secs=_MEDIUM_TIMEOUT, ) - response_parsed = parse_date_fields(pluck_data(jsonlib.loads(response.text))) + response_parsed = parse_date_fields(pluck_data(response.json())) processed_requests.extend(response_parsed.get('processedRequests', [])) unprocessed_requests.extend(response_parsed.get('unprocessedRequests', [])) @@ -808,7 +807,7 @@ async def batch_delete_requests(self, requests: list[dict]) -> dict: json=requests, timeout_secs=_SMALL_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def list_requests( self, @@ -833,7 +832,7 @@ async def list_requests( timeout_secs=_MEDIUM_TIMEOUT, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def unlock_requests(self: RequestQueueClientAsync) -> dict: """Unlock all requests in the queue, which were locked by the same clientKey or from the same Actor run. @@ -851,4 +850,4 @@ async def unlock_requests(self: RequestQueueClientAsync) -> dict: params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) diff --git a/src/apify_client/clients/resource_clients/run.py b/src/apify_client/clients/resource_clients/run.py index 22f4ac02..d934c01b 100644 --- a/src/apify_client/clients/resource_clients/run.py +++ b/src/apify_client/clients/resource_clients/run.py @@ -1,7 +1,6 @@ from __future__ import annotations import json -import json as jsonlib import logging import random import string @@ -152,7 +151,7 @@ def metamorph( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def resurrect( self, @@ -203,7 +202,7 @@ def resurrect( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def reboot(self) -> dict: """Reboot an Actor run. Only runs that are running, i.e. runs with status RUNNING can be rebooted. @@ -217,7 +216,7 @@ def reboot(self) -> dict: url=self._url('reboot'), method='POST', ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def dataset(self) -> DatasetClient: """Get the client for the default dataset of the Actor run. @@ -477,7 +476,7 @@ async def metamorph( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def resurrect( self, @@ -528,7 +527,7 @@ async def resurrect( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def reboot(self) -> dict: """Reboot an Actor run. Only runs that are running, i.e. runs with status RUNNING can be rebooted. @@ -542,7 +541,7 @@ async def reboot(self) -> dict: url=self._url('reboot'), method='POST', ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def dataset(self) -> DatasetClientAsync: """Get the client for the default dataset of the Actor run. diff --git a/src/apify_client/clients/resource_clients/schedule.py b/src/apify_client/clients/resource_clients/schedule.py index 8aed0ace..b8908853 100644 --- a/src/apify_client/clients/resource_clients/schedule.py +++ b/src/apify_client/clients/resource_clients/schedule.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import Any from apify_client._utils import catch_not_found_or_throw, filter_out_none_values_recursively, pluck_data_as_list @@ -113,7 +112,7 @@ def get_log(self) -> list | None: method='GET', params=self._params(), ) - return pluck_data_as_list(jsonlib.loads(response.text)) + return pluck_data_as_list(response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -202,7 +201,7 @@ async def get_log(self) -> list | None: method='GET', params=self._params(), ) - return pluck_data_as_list(jsonlib.loads(response.text)) + return pluck_data_as_list(response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) diff --git a/src/apify_client/clients/resource_clients/task.py b/src/apify_client/clients/resource_clients/task.py index 4f53fb6b..da0837d2 100644 --- a/src/apify_client/clients/resource_clients/task.py +++ b/src/apify_client/clients/resource_clients/task.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import TYPE_CHECKING, Any, cast from apify_client._utils import ( @@ -212,7 +211,7 @@ def start( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) def call( self, @@ -279,7 +278,7 @@ def get_input(self) -> dict | None: method='GET', params=self._params(), ) - return cast('dict', jsonlib.loads(response.text)) + return cast('dict', response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) return None @@ -298,7 +297,7 @@ def update_input(self, *, task_input: dict) -> dict: params=self._params(), json=task_input, ) - return cast('dict', jsonlib.loads(response.text)) + return cast('dict', response.json()) def runs(self) -> RunCollectionClient: """Retrieve a client for the runs of this task.""" @@ -480,7 +479,7 @@ async def start( params=request_params, ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) async def call( self, @@ -547,7 +546,7 @@ async def get_input(self) -> dict | None: method='GET', params=self._params(), ) - return cast('dict', jsonlib.loads(response.text)) + return cast('dict', response.json()) except ApifyApiError as exc: catch_not_found_or_throw(exc) return None @@ -566,7 +565,7 @@ async def update_input(self, *, task_input: dict) -> dict: params=self._params(), json=task_input, ) - return cast('dict', jsonlib.loads(response.text)) + return cast('dict', response.json()) def runs(self) -> RunCollectionClientAsync: """Retrieve a client for the runs of this task.""" diff --git a/src/apify_client/clients/resource_clients/user.py b/src/apify_client/clients/resource_clients/user.py index b3984b0b..86a81c07 100644 --- a/src/apify_client/clients/resource_clients/user.py +++ b/src/apify_client/clients/resource_clients/user.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import Any from apify_client._utils import ( @@ -53,7 +52,7 @@ def monthly_usage(self) -> dict | None: method='GET', params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -77,7 +76,7 @@ def limits(self) -> dict | None: method='GET', params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -144,7 +143,7 @@ async def monthly_usage(self) -> dict | None: method='GET', params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -168,7 +167,7 @@ async def limits(self) -> dict | None: method='GET', params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) diff --git a/src/apify_client/clients/resource_clients/webhook.py b/src/apify_client/clients/resource_clients/webhook.py index 06544719..559485a6 100644 --- a/src/apify_client/clients/resource_clients/webhook.py +++ b/src/apify_client/clients/resource_clients/webhook.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import TYPE_CHECKING, Any from apify_client._utils import ( @@ -150,7 +149,7 @@ def test(self) -> dict | None: params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) @@ -260,7 +259,7 @@ async def test(self) -> dict | None: params=self._params(), ) - return parse_date_fields(pluck_data(jsonlib.loads(response.text))) + return parse_date_fields(pluck_data(response.json())) except ApifyApiError as exc: catch_not_found_or_throw(exc) diff --git a/src/apify_client/errors.py b/src/apify_client/errors.py index d34552fe..1b83003c 100644 --- a/src/apify_client/errors.py +++ b/src/apify_client/errors.py @@ -1,6 +1,5 @@ from __future__ import annotations -import json as jsonlib from typing import TYPE_CHECKING if TYPE_CHECKING: @@ -33,7 +32,7 @@ def __init__(self, response: impit.Response, attempt: int, method: str = 'GET') self.message = f'Unexpected error: {response.text}' try: - response_data = jsonlib.loads(response.text) + response_data = response.json() if 'error' in response_data: self.message = response_data['error']['message'] self.type = response_data['error']['type']