Movatterモバイル変換


[0]ホーム

URL:


Python Tutorial

Python json.decoder.JSONDecoder.parse_float Attribut



The Pythonjson.decoder.JSONDecoder.parse_float attribute is used to specify a custom function for decoding floating-point numbers when parsing JSON.

By default, Python uses the built-infloat type for handling floating-point values in JSON. However, this attribute allows users to replace it with an alternative function, such asdecimal.Decimal for higher precision.

Syntax

Following is the syntax of using theparse_float attribute −

json.decoder.JSONDecoder(parse_float=function)

Parameter

It is a function that takes a string and returns a floating-point representation.

Return Value

Theparse_float attribute affects how floating-point numbers are parsed from JSON and returns a user-defined numeric type.

Example: Using parse_float with Default float

In this example, we parse a JSON string containing floating-point numbers using the defaultfloat type −

import json# JSON string with float numbersjson_string = '{"price": 99.99, "tax": 5.75}'# Create JSONDecoder instance with default floatdecoder = json.decoder.JSONDecoder(parse_float=float)# Decode JSONparsed_data = decoder.decode(json_string)print("Parsed JSON:", parsed_data)print("Type of 'price':", type(parsed_data["price"]))

Following is the output obtained −

Parsed JSON: {'price': 99.99, 'tax': 5.75}Type of 'price': <class 'float'>

Example: Using parse_float with decimal.Decimal

Usingdecimal.Decimal provides higher precision for floating-point numbers −

import jsonfrom decimal import Decimal# JSON string with float numbersjson_string = '{"price": 99.99, "tax": 5.75}'# Create JSONDecoder instance with Decimal for higher precisiondecoder = json.decoder.JSONDecoder(parse_float=Decimal)# Decode JSONparsed_data = decoder.decode(json_string)print("Parsed JSON:", parsed_data)print("Type of 'price':", type(parsed_data["price"]))

Following is the output of the above code −

Parsed JSON: {'price': Decimal('99.99'), 'tax': Decimal('5.75')}Type of 'price': <class 'decimal.Decimal'>

Example: Using parse_float to Round Floats

You can also define a custom function to round floating-point numbers while decoding −

import json# Custom function to round float valuesdef round_float(value):   return round(float(value), 2)  # Rounds to 2 decimal places# JSON string with float numbersjson_string = '{"price": 99.999, "tax": 5.756}'# Create JSONDecoder instance with rounding functiondecoder = json.decoder.JSONDecoder(parse_float=round_float)# Decode JSONparsed_data = decoder.decode(json_string)print("Rounded JSON:", parsed_data)

We get the output as shown below −

Rounded JSON: {'price': 100.0, 'tax': 5.76}

Example: Convert Floats to Strings

Another use case of parse_float is converting float numbers to strings during decoding −

import json# Custom function to convert floats to stringsdef float_to_string(value):   return f"{value} (converted)"# JSON string with float numbersjson_string = '{"price": 99.99, "tax": 5.75}'# Create JSONDecoder instance with float_to_string functiondecoder = json.decoder.JSONDecoder(parse_float=float_to_string)# Decode JSONparsed_data = decoder.decode(json_string)print("Converted JSON:", parsed_data)

The result produced is as follows −

Converted JSON: {'price': '99.99 (converted)', 'tax': '5.75 (converted)'}
python_json.htm
Print Page
Advertisements

[8]ページ先頭

©2009-2025 Movatter.jp