How to Get String Objects from JSON in Python 2?
How to Retrieve String Objects from JSON in Python 2
When parsing JSON data from ASCII-encoded text files in Python 2, you may encounter the issue of string values being cast to Unicode objects. This can be problematic when working with libraries that only accept string objects.
A Lightweight Solution: PyYAML
To resolve this issue, you can leverage the PyYAML library. As JSON is a subset of YAML, PyYAML can be employed to parse JSON files and return keys and values as strings instead of Unicode objects. Here's an example:
<code class="python">import yaml original_list = ['a', 'b'] yaml_list = yaml.safe_load(yaml.dump(original_list)) print(type(yaml_list[0])) # Output: <class 'str'></code>
Conversion Approaches
If you cannot use PyYAML, consider using a conversion function. Mark Amery's conversion function is straightforward and effective:
<code class="python">def unicode_to_str(obj): if isinstance(obj, unicode): return obj.encode('utf-8') elif isinstance(obj, list): return [unicode_to_str(x) for x in obj] elif isinstance(obj, dict): return {unicode_to_str(k): unicode_to_str(v) for k, v in obj.items()} return obj</code>
Caveats:
- If the JSON file contains non-ASCII characters, it will be parsed as Unicode objects by PyYAML.
- Avoid using PyYAML's load() function, as it may lead to security concerns. Prefer safe_load() instead.
- Consider using Ruamel YAML if you need support for YAML 1.2 or low numbers.
The above is the detailed content of How to Get String Objects from JSON in Python 2?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

Fastapi ...

Using python in Linux terminal...

Understanding the anti-crawling strategy of Investing.com Many people often try to crawl news data from Investing.com (https://cn.investing.com/news/latest-news)...
