【问题标题】:Json handling of multiple list in pythonpython中多个列表的Json处理
【发布时间】:2020-05-15 21:34:18
【问题描述】:

我从数据库的列表中获取多个数据并将其附加到另一个列表中,所以我的数据看起来是这样的

data= [["a","b","c"],["1","2","3"]]

如果我尝试 Json 转储并加载此数据,它会在加载端出现错误

data2 = str.encode(json.dumps(data))
st = bytes.decode(data2)
msg = json.loads(st)

raise JSONDecodeError("Expecting value", s,err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

但这不会发生在单个列表中

【问题讨论】:

标签: python json


【解决方案1】:

我不确定您尝试使用所有 str/bytes 编码/解码来实现什么,但这就像

import json

data = [["a", "b", "c"], ["1", "2", "3"]]
json_str = json.dumps(data)
print(json_str)
# '[["a", "b", "c"], ["1", "2", "3"]]' <- a string
python_list = json.loads(json_str)
print(python_list)
# [['a', 'b', 'c'], ['1', '2', '3']] <- back to Python list

【讨论】:

  • 我的脚本没有这么简单,我写了一个简单的代码,所以我的问题会更有效率,我的脚本涉及线程服务器和客户端,我可能会编辑它以反映我的代码的确切性质
【解决方案2】:

这是 Json 转储和加载此数据的解决方案。

import json
data= [["a","b","c"],["1","2","3"]]

# print(data)

data2 = json.dumps(data)
print(data2)
msg = json.loads(data2)
print(msg)

【讨论】:

    【解决方案3】:

    你想要这样的json吗:{"data": [["a", "b", "c"], ["1", "2", "3"]]}

    对于这个输出,这是代码

    data= [["a","b","c"],["1","2","3"]]
    import json
    data_dict = {'data':data}
    data2 = json.dumps(data_dict)
    print(data2)
    

    【讨论】:

    • 谢谢大家,我找到了解决方法,虽然它不是最好的,但事实证明 Json.load 的列表包含太多列表,每个列表中的项目太多,所以在转储之后,它无法加载它,我想知道为什么 json 会这样,这让我的工作变得更加困难,因为现在我有一个 100 列的 sql 表。而不是使用 sql 语句(SELECT * FROM TABLE),在其他为避免 json 错误,我必须以较小的块 (SELECT col1,col2,col3 FROM TABLE)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    相关资源
    最近更新 更多