簡體   English   中英

使用python 2.7將字符串字典列表轉換為另一個字典並以表格格式打印

[英]Convert list of string dictionary to another dictionary using python 2.7 and print in tabular format

這是我擁有的數據:

['{"end_date":"2021-07-15 09:00:00","number":"CHG81923","requested_by":"Dan","cmdb_ci":"LR Resort"}','{"end_date":"2021-07-15 06:00:00","number":"CHG13146","requested_by":"Tery","cmdb_ci":"My Service"}']

實際結果需要通過格式化上述內容以表格形式呈現。 使用 Pandas 和ast模塊存在限制。

如何打印這樣的結果?

End Date                Number       Requester      CMDB
2021-07-15 09:00:00     CHG81923     Dan            LR Resort
2021-07-15 06:00:00     CHG13146     Tery           My Service

為簡單起見嘗試pandas

import json
import pandas as pd

data = ['{"end_date":"2021-07-15 09:00:00","number":"CHG81923","requested_by":"Dan","cmdb_ci":"LR Resort"}','{"end_date":"2021-07-15 06:00:00","number":"CHG13146","requested_by":"Tery","cmdb_ci":"My Service"}']
df = pd.DataFrame.from_dict(map(json.loads, data))
df.rename(columns={
    'end_date': 'End Date',
    'number': 'Number',
    'requested_by': 'Requester',
    'cmdb_ci': 'CMDB'
}, inplace=True)

print(df)
              End Date    Number Requester        CMDB
0  2021-07-15 09:00:00  CHG81923       Dan   LR Resort
1  2021-07-15 06:00:00  CHG13146      Tery  My Service

保存為 csv 使用

df.to_csv('file.csv')

更新

import json
d = ['{"end_date":"2021-07-15 09:00:00","number":"CHG81923","requested_by":"Dan","cmdb_ci":"LR Resort"}','{"end_date":"2021-07-15 06:00:00","number":"CHG13146","requested_by":"Tery","cmdb_ci":"My Service"}']

data = [json.loads(i) for i in d]
headers = ['End Date', 'Number', 'Requester', 'CMDB']

max_column_heights = [max(map(len, i))+5 for i in zip(*[i.values() for i in data], headers)] #+5 for extra space

for each_row in [headers] + [i.values() for i in data]:
    for column, i in enumerate(each_row):
        print(i.ljust(max_column_heights[column]), end='')
    print()
    
    
    
# End Date                Number       Requester     CMDB           
# 2021-07-15 09:00:00     CHG81923     Dan           LR Resort      
# 2021-07-15 06:00:00     CHG13146     Tery          My Service   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM