json将列表字典等转字符串,然后解析又转回来

时间:2024-07-21 08:18:11

在 Python 中使用 json 模块来方便地在数据和 JSON 格式字符串之间进行转换,以便进行数据的存储、传输或与其他支持 JSON 格式的系统进行交互。

 JSON 字符串通过 json.loads() 函数转换为 Python 对象。

pthon对象通过json.dumps()转为字符串

import json

str_list = [1, 2, 3, "hello", {"key": "value"}]
json_str = json.dumps(str_list)
# json_str = str(feat_list)
print(json_str)
list1 = json.loads(json_str)
print(list1)

在使用 json.loads() 时,可能会遇到以下几种常见错误及解决方法:

  1. ValueError: Expecting property name enclosed in double quotes

    • 原因:JSON 字符串中的键没有用双引号括起来。
    • 解决方法:确保 JSON 字符串中的键和值都正确地使用双引号括起来。
  2. ValueError: Extra data

    • 原因:输入的 JSON 字符串包含了多个独立的 JSON 对象或数据,而 json.loads() 期望的是一个单一的 JSON 对象或数组。
    • 解决方法:检查输入的字符串,确保只包含一个有效的 JSON 数据结构。
  3. ValueError: Invalid control character at

    • 原因:JSON 字符串中包含了无效的控制字符。
    • 解决方法:清理输入的字符串,去除无效的控制字符。
  4. TypeError: the JSON object must be str, bytes or bytearray, not 'dict'

    • 原因:向 json.loads() 传入的参数不是字符串类型,而是字典等其他数据类型。
    • 解决方法:确保传入的是一个有效的 JSON 格式的字符串。

 import json json_str = '{"key": "value"}' try: data = json.loads(json_str) except json.JSONDecodeError as e: print(f"解析 JSON 时出错: {e}")