1e308 के बीच
कहीं और 1e309 तैरता है, परिशुद्धता से बाहर चलाने ताकि आप उस श्रेणी के ऊपर परिणामों का आकलन कर रहे हैं यदि आप inf देखेंगे
>>> 1e308
1e+308
>>> 1e309
inf
>>> json.dumps(1e308,allow_nan=False)
'1e+308'
>>> json.dumps(1e309,allow_nan=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/json/__init__.py", line 237, in dumps
**kw).encode(obj)
File "/usr/lib/python2.6/json/encoder.py", line 367, in encode
chunks = list(self.iterencode(o))
File "/usr/lib/python2.6/json/encoder.py", line 304, in _iterencode
yield floatstr(o, self.allow_nan)
File "/usr/lib/python2.6/json/encoder.py", line 47, in floatstr
raise ValueError(msg)
ValueError: Out of range float values are not JSON compliant: inf
>>>
दशमलव बड़ी संख्या में संभाल कर सकते हैं, लेकिन स्पष्ट रूप से वहाँ निष्पादन दंड है (और यह json के साथ धारावाहिक नहीं किया जा सकता)
>>> from decimal import Decimal
>>> Decimal('1e900')/10
Decimal("1E+899")
यहाँ एक अतिरिक्त है कि रा नहीं है का एक उदाहरण है आईएसई ओवरफ्लो अपवाद
>>> a=1e308
>>> a+a
inf
स्रोत
2009-12-01 08:33:54
हम्म ... अनंतता JSON मान्य नहीं है, लेकिन पायथन दोनों क्रमबद्ध और अनुक्रमित करेंगे। – Thanatos
@ थानाटोस कि व्यवहार कॉन्फ़िगर करने योग्य है http://docs.python.org/library/json.html –