在 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中文网其他相关文章!