在Python 2 中從JSON 檢索字串物件
在Python 2 中從ASCII 編碼的文字檔解析JSON 時,字串值會自動轉換到Unicode 物件。當與專門接受字串物件的庫互動時,這可能會帶來問題。
雖然更新到 Python 3 或使用轉換函數是可行的解決方案,但另一個選擇是利用 PyYAML。 PyYAML 提供了一種更直接的方法,透過傳回字串物件作為JSON 檔案的鍵和值:
<code class="python">import yaml list_org = ['a', 'b'] list_dump = json.dumps(list_org) json_result = json.loads(list_dump) yaml_result = yaml.safe_load(list_dump) print(json_result, type(json_result)) # [u'a', u'b'], <type 'list'> print(yaml_result, type(yaml_result)) # ['a', 'b'], <type 'list'></code>
請注意,PyYAML 的load 函數必須替換為safe_load 以確保與JSON 的兼容性。此外,雖然 ASCII 編碼的條目會產生字串對象,但使用 Unicode 編碼的條目仍會產生 Unicode 物件。
如果需要將字串物件轉換為 Unicode 對象,可以使用 Mark Amery 的轉換函數:
<code class="python">from mark_amery import unicode_to_str json_list = json.loads(json_list) str_list = unicode_to_str(unicode_list)</code>
以上是如何在 Python 2 中從 JSON 檢索字串物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!