簡體   English   中英

嵌套字典(如何打印所有鍵和列)

[英]nested dicts(how to print all keys and columns)

下面是一個字典/JSON,我想將不同列中的每個鍵和值分開,並將其放入excel。

expected Output:
Keys                      Values
h                             e
f                              r
t                              ['w', 'x']
P                             ['d', 'c']
l  

                         q 

我試過

import json

x = {
  "a": [
      { "h":"e" }, { "f": "r" }, { "t":  "[ w, x ]" } ],
  "b": [
      {"P": "[ d, c ]" }, {"l": "q" } ]
}

print(json.dumps(x))

for k, v in x.items():
    for k1, v1 in v.items():
        print(k1)
import json

x = {
  "a": [
      { "h":"e" }, { "f": "r" }, { "t":  "[ w, x ]" } ],
  "b": [
      {"P": "[ d, c ]" }, {"l": "q" } ]
}

print(json.dumps(x))

for k, v in x.items():
    for v1 in v:
       print(v1.values())

我相信這是你想要的,你在第一個字典中的值里面有列表,所以你需要遍歷它們然后獲取值

在您的示例中稍作修改:

    for k, v in x.items():
        for item in v:
            for k1, v1 in item.items():
                print(f'{k1}  {v1}')

從所需的鍵和值創建一個字典,然后您可以使用 Pandas DataFrame 從字典創建數據框

數據框是一種二維數據結構,即數據在行和列中以表格方式對齊。 Pandas DataFrame 由三​​個主要組件組成,數據、行和列。

import pandas as pd
x = {
  "a": [
      { "h":"e" }, { "f": "r" }, { "t":  "[ w, x ]" } ],
  "b": [
      {"P": "[ d, c ]" }, {"l": "q" } ]
}

data = {}
for v in x.values():
    for item in v:
        data.update(item)

df =(pd.DataFrame(list(data.items()), columns=['Key', 'Value']))
print (df.to_string(index = False))

輸出:

Key     Value
  h         e
  f         r
  t  [ w, x ]
  P  [ d, c ]
  l         q

暫無
暫無

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

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