Displaying Decimals in JSON Data with Pandas
As you’re using the json_load method from pandas to parse a JSON feed, there might be a limitation when dealing with decimal points. The issue arises because some APIs return data with commas as thousand separators, while others use dots (.) instead.
Here’s an article on how to display all decimals coming from a JSON feed when you use pandas to convert the data:
Problem Statement
When using json_load to parse a JSON feed that contains decimal values, such as stock prices or financial data, you might encounter issues with displaying these numbers correctly. Specifically, the code is struggling to handle cases where the API returns data with commas (,) as thousand separators.
Solution: Use pd.read_json() with parse_dates=True
To tackle this problem, we can leverage the pandas.read_json() function along with the parse_dates=True parameter. This approach allows us to parse JSON files in a pandas dataframe without losing any data precision.
import pandas and pd
Replace ' with your actual API endpoint URL
url = '
set fetch_json_data(url, params):
"""
Fetch JSON data from the specified URL and return it in a pandas DataFrame.
Parameters:
url (str): The API endpoint URL.
params (dict): A dictionary of query parameters to filter the response.
Return:
pd.DataFrame: A DataFrame containing the fetched JSON data.
"""
Set the API request parameters
params = {k: v for k, v in params.items() if k not in ['timestamp', 'open', 'high', 'low', 'close']}
Fetch the JSON data using pandas' built-in read_json() function
data = pd.read_json(url, params=params)
return data
do main():
url = '
params = {'symbol': 'BTCUSDT', 'interval': '1m', 'limit': 1000}
Adjust these parameters according to your needs
data = fetch_json_data(url, params)
print(data)
if __name__ == '__main__':
main()
How It Works:

The fetch_json_data() function takes an API endpoint URL and query parameters as input. We first convert the query parameters into a dictionary with only non-numeric keys (timestamp, open, high, low, close), which are useful for filtering the response.
Then, we use pd.read_json() to fetch JSON data from the specified URL using these filtered parameters. The resulting DataFrame is then printed to the console.
Tips and Variations:
- You can customize the API request parameters to suit your specific needs.
- Be mindful of the API’s rate limits to avoid excessive requests.
- If you’re dealing with large datasets, consider splitting the JSON data into smaller chunks using
chunksize=10000.
- To display decimal values as floats instead of integers, simply change
int()tofloat()in the pandas DataFrame.
