如何在 Python 2 中从 JSON 检索字符串对象
在 Python 2 中从 ASCII 编码的文本文件解析 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>
注意事项:
以上是如何在 Python 2 中从 JSON 获取字符串对象?的详细内容。更多信息请关注PHP中文网其他相关文章!