首页 > 解决方案 > 如何让 json.loads() 读取以列名作为第一个元素的 json 字符串

问题描述

我正在从 http get 序列化数据表,出于性能原因,我更愿意将其序列化为 Names, Values 结构,以便第一个元素包含列名,json.loads 可以处理这个问题,如果没有,是否还有另一个 json 解析器那会吗?

{
    "Names" : ["summaryDate","count"],
    "Values" : [["2020-01-15T00:00:00",10],["2020-01-16T00:00:00",12],["2020-01-17T00:00:00",16]]
}

(这将大小减少到标准 JSON 流的 20%,每个“行”重复字段名称)

标签: pythonjson

解决方案


您可以使用 json 将其加载到字典中,然后应用此公式来获取所需的字典:

dic = {
"Names" : ["summaryDate","count"],
"Values" : [["2020-01-15T00:00:00",10],["2020-01-16T00:00:00",12],["2020-01-17T00:00:00",16]]
}
d=[ {'SummaryDate':summaryDate,'count':count} for summaryDate,count in dic['Values']]

推荐阅读