Python 如何获取列表中的项目并将其转换为json

Python 如何获取列表中的项目并将其转换为json,python,json,Python,Json,我有4个单独的json,有4个键sum,min,max,count,列表如下: "sum" : ["columnA", "columnB", "columnC", "columnD"] "min" : ["columnA", "columnC"] "max" : ["columnB", "columnC"] "count" : ["columnA", "columnD"] 如何将它们重新打包到json对象中,如下所示: { "columnA" : ["sum", "min","co

我有4个单独的json,有4个键
sum
min
max
count
,列表如下:

"sum" :  ["columnA", "columnB", "columnC", "columnD"]

"min" :  ["columnA", "columnC"]

"max" :  ["columnB", "columnC"]

"count" : ["columnA", "columnD"]
如何将它们重新打包到json对象中,如下所示:

{ "columnA" : ["sum", "min","count" ] , "columnB" : ["sum", "max"], "columnC" : ["sum", "min", "max"] }
要获得快速(开发)结果,请尝试以下方法:

>>> my_json = {"sum" :  ["columnA", "columnB", "columnC", "columnD"]
,"min" :  ["columnA", "columnC"]
,"max" :  ["columnB", "columnC"]
,"count" : ["columnA", "columnD"]}
>>> result = {}
>>> [result.setdefault(col,[]).append(key) for key,value in my_json.items() for col in value]
>>> result
{'columnD': ['count', 'sum'], 'columnA': ['count', 'sum', 'min'], 'columnC': ['max', 'sum', 'min'], 'columnB': ['max', 'sum']}
更具可读性的版本:

>>> result = {}
>>> for function, columns in my_json.items():
        for column in columns:
            result.setdefault(column, []).append(function)


>>> result
{'columnD': ['count', 'sum'], 'columnA': ['count', 'sum', 'min'], 'columnC': ['max', 'sum', 'min'], 'columnB': ['max', 'sum']}

json
是一种文本格式,而不是数据类型。@brunodesshuilliers and then?然后“我有4个单独的json”没有意义。您可能有四个文件或字符串或任何包含json格式化文本的内容(在这种情况下,您希望首先将它们解析为python对象),或者您已经有了最终由json格式化字符串创建的python对象(可能是DICT),但您拥有的只是纯python对象,而不是“json”.事实上,你发布的既不是有效的json也不是有效的python…是的,我需要将它们解析成一些东西。我的意思是不局限于格式。考虑到这4个关键点及其价值观,我们的目标是拿出我在问题上所说的,希望人们不会受到格式的限制,可以自由地根据自己的方式进行重组。mshsayem的答案是一个很好的例子,他将它们转换成json。无论如何,谢谢你指出问题写作的不准确之处,下次我会格外小心。