Disallowed NaN
and Infinity
values in JSONs sent to the Apify API
#87
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If you tried to push an item which contained a
NaN
to a dataset, it would return an error from the Apify API, that the JSON you sent to it is invalid.That is because in Python, by default,
json.dumps()
stringifiesNaN
andInfinity
values. This is against the JSON standard, andJSON.parse
on the API fails to parse the value.This fixes it by adding the
allow_nan=False
parameter tojson.dumps()
, so that the error is caught before sending the invalid JSON to the API, and throws an error early.By the way, when fixing this, I made my first fix to CPython: python/cpython#99926