python - 有没有办法将 json 压缩成 web2py 中的行和列?

标签 python json web2py

我有以下 json 数据

col = {"00:00:00:00": {"NAME":"aaa","ID":"111","DEPT":"8888","JOIN":"666","DL":333,"SNAME":"John","UPLOAD":"600","RETRY":"3","IP":"111.222.333.444"},
       "11:11:11:11:11": {"NAME":"bbb","ID":"222","DEPT":"9999","JOIN":"777","DL":222,"SNAME":"Mary","UPLOAD":"200","RETRY":"2","IP":"122.133.144.155"},
       "22:22:22:22": {"NAME":"ccc","ID":"333","DEPT":"6666","JOIN":"111","DL":333,"SNAME":"Stuart","UPLOAD":"500","RETRY":"4","IP":"199.188.177.166"}}

如何使用 ZIP 并在 web2py 中放入行和列列表? 我尝试使用

rows = zip(*col[c] for c in columns)

但我没有得到正确的输出。 列应该是

columns = ["NAME", "ID", "DEPT", "JOIN", "DL", "SNAME", "UPLOAD", "RETRY", "IP"]

行是 json 中的关联值。

我希望有以下格式的表格

NAME, ID, DEPT, JOIN, DL, SNAME, UPLOAD, RETRY, IP
aaa   111 888   666   333 John   600     3     111.222.333.444

...与键关联的所有其他值类似。

最佳答案

你的意思也许是这个?

columns = col.values()[0].keys()
zip(columns, zip(*(v.values() for v in col.values())))

其中 col 引用您的字典,columns 是根据嵌套字典一个的键生成的列表。

从嵌套字典中生成非常重要,否则您将无法以相同的顺序获得键和值。

演示:

>>> col = {"00:00:00:00":{"NAME":"aaa","ID":"111","DEPT":"8888","JOIN":"666","DL":333,"SNAME":"John","ULOAD":"600","RETRY":"3","IP":"111.222.333.444"},
... "11:11:11:11:11":{"NAME":"bbb","ID":"222","DEPT":"9999","JOIN":"777","DL":222,"SNAME":"Mary","UPLOAD":"200","RETRY":"2","IP":"122.133.144.155"},
... "22:22:22:22":{"NAME":"ccc","ID":"333","DEPT":"6666","JOIN":"111","DL":333,"SNAME":"Stuart","UPLOAD":"500","RETRY":"4","IP":"199.188.177.166"}}
>>> columns = col.values()[0].keys()
>>> zip(columns, zip(*(v.values() for v in col.values())))
[('DEPT', ('9999', '8888', '6666')), ('DL', (222, 333, 333)), ('SNAME', ('Mary', 'John', 'Stuart')), ('JOIN', ('777', '666', '111')), ('NAME', ('bbb', 'aaa', 'ccc')), ('IP', ('122.133.144.155', '600', '199.188.177.166')), ('RETRY', ('2', '111.222.333.444', '4')), ('ID', ('222', '3', '333')), ('UPLOAD', ('200', '111', '500'))]
>>> pprint(zip(columns, zip(*(v.values() for v in col.values()))))
[('DEPT', ('9999', '8888', '6666')),
 ('DL', (222, 333, 333)),
 ('SNAME', ('Mary', 'John', 'Stuart')),
 ('JOIN', ('777', '666', '111')),
 ('NAME', ('bbb', 'aaa', 'ccc')),
 ('IP', ('122.133.144.155', '600', '199.188.177.166')),
 ('RETRY', ('2', '111.222.333.444', '4')),
 ('ID', ('222', '3', '333')),
 ('UPLOAD', ('200', '111', '500'))]

关于python - 有没有办法将 json 压缩成 web2py 中的行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23091907/

相关文章:

python - Vagrant 安装 Anaconda Python?

javascript - 将url编码数据转换为JSON数组或js数组

javascript - 我已将嵌套 Json 数据存储在变量中,如何在 jquery 的另一个函数中访问它们?

database - web2py 中的双连接。如何在 web2py 中应用此 SQL?

postgresql - 无法使用 postgresql 数据库运行 web2py 调度程序

python - OpenMaya API (python) : print more useful info from MObjects? 例如MFloatVector(x, y, z)

python - 设置具有定时自动删除元素的类

python - 为什么人们会用鸡蛋而不是sdist?

javascript - 为什么在 Rhino 中执行的 JavaScript 脚本中声明一个简单的 JSON 对象不起作用?

python - 在Python中将XML元素转换为字符串,然后将字符串转换为XML文件