Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字典格式化为表格式_Python_Dictionary_Ordereddictionary - Fatal编程技术网

Python 将字典格式化为表格式

Python 将字典格式化为表格式,python,dictionary,ordereddictionary,Python,Dictionary,Ordereddictionary,我需要以表格格式显示我的词典: res = OrderedDict([('Release', '3.7.3'), ('REFDB', ['1234', '4567', '4567']), ('URL', ['http://www.test.com', 'http://www.foo.com', 'http://www.bar.com'])]) 我可以用这个代码以列表格式打印值 if res: for key, val in res.items(): print (key

我需要以表格格式显示我的词典:

res = OrderedDict([('Release', '3.7.3'), ('REFDB', ['1234', '4567', '4567']), ('URL', ['http://www.test.com', 'http://www.foo.com', 'http://www.bar.com'])])
我可以用这个代码以列表格式打印值

if res:
    for key, val in res.items():
        print (key, '-''\n', val)
else:
    print ('Version not found')
我期望的格式是-

Release  REFDB     SVN
3.7.3    12345     http://google.com   
         232323    http://www.yahoo.com
         4343454   http://www.test.com
         5454554   http://www.bar.com

这里有一种使用和的方法:



如果希望有更多或更少的间距,可以在字符串格式中更改列间间距。

以下是使用和的一种方法:


如果希望有更多或更少的间距,可以在字符串格式中更改列间间距。

可以使用库将字典转换为数据帧

from collections import OrderedDict
import pandas as pd

d = OrderedDict([('Release', '3.7.3'), ('REFDB', '12345 \n 232323 \n 4343454 \n 5454554'), ('URL', 'http://google.com \n http://www.yahoo.com \n http://www.test.com \n http://www.bar.com')])

for key in d.keys():
    d[key] =  d[key].split('\n')

df = pd.DataFrame.from_dict(d, orient='index').transpose()
输出将是:

  Release      REFDB                     URL
0   3.7.3     12345       http://google.com 
1    None    232323    http://www.yahoo.com 
2    None   4343454     http://www.test.com 
3    None    5454554      http://www.bar.com
可以使用库将字典转换为数据帧

from collections import OrderedDict
import pandas as pd

d = OrderedDict([('Release', '3.7.3'), ('REFDB', '12345 \n 232323 \n 4343454 \n 5454554'), ('URL', 'http://google.com \n http://www.yahoo.com \n http://www.test.com \n http://www.bar.com')])

for key in d.keys():
    d[key] =  d[key].split('\n')

df = pd.DataFrame.from_dict(d, orient='index').transpose()
输出将是:

  Release      REFDB                     URL
0   3.7.3     12345       http://google.com 
1    None    232323    http://www.yahoo.com 
2    None   4343454     http://www.test.com 
3    None    5454554      http://www.bar.com

您必须
将这些字符串拆分为字符串列表,然后使用
itertools.zip\u longest
生成元组。使用
''
作为填充值。您必须
将这些字符串拆分为字符串列表,然后使用
itertools.zip\u longest
生成元组。使用
''
作为填充值。我正在以不同的格式获取词典(在原始问题中更新)。当前格式的代码失败。@vpd在收到有效答案后更新您的问题是不公平的。在我的答案中编辑数据集以匹配您的新问题甚至会使问题变得更糟。无论如何,我更新了答案以符合您的新要求。下次,你应该在答案上留下评论,说明你的新要求,如果它与第一次没有太大的不同。否则,你可以考虑在一个新的帖子里问这个问题。当前格式的代码失败。@vpd在收到有效答案后更新您的问题是不公平的。在我的答案中编辑数据集以匹配您的新问题甚至会使问题变得更糟。无论如何,我更新了答案以符合您的新要求。下次,你应该在答案上留下评论,说明你的新要求,如果它与第一次没有太大的不同。否则,你可以考虑在一个新的职位上提出这个问题。