首頁 >後端開發 >Python教學 >如何在 Python 2 中從 JSON 取得字串物件?

如何在 Python 2 中從 JSON 取得字串物件?

Patricia Arquette
Patricia Arquette原創
2024-11-03 08:39:30659瀏覽

How to Get String Objects from JSON in Python 2?

如何在Python 2 中從JSON 檢索字串物件

在Python 2 中從ASCII 編碼的文字檔案解析JSON 資料時,解析JSON您可以遇到字串值轉換為Unicode 物件的問題。使用僅接受字串物件的庫時,這可能會出現問題。

輕量級解決方案:PyYAML

要解決此問題,您可以利用 PyYAML 函式庫。由於 JSON 是 YAML 的子集,因此可以使用 PyYAML 來解析 JSON 檔案並將鍵和值作為字串而不是 Unicode 物件傳回。以下是範例:

<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>

轉換方法

如果您無法使用 PyYAML,請考慮使用轉換函數。 Mark Amery 的轉換函數簡單有效:

<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>

注意事項:

  • 如果JSON 檔案包含非ASCII 字符,它將被解析為PyYAML 的Unicode 物件。
  • 避免使用 PyYAML 的 load() 函數,因為它可能會導致安全性問題。更喜歡 safe_load()。
  • 如果您需要 YAML 1.2 或較低數量的支持,請考慮使用 Ruamel YAML。

以上是如何在 Python 2 中從 JSON 取得字串物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn