我將具有以下結構的 JSON 放入 python 變數中的串列中。我想將此 JSON 值提取為表格。我的問題是,如何從串列中提取它以及如何將其更改為表格?
轉換完成后,我會將輸出插入到 Postgres 表中。
JSON結構
['
{
"_id": {
"$Col1": "XXXXXXX2443"
},
"col2": false,
"col3": "359335050111111",
"startedAt": {
"$date": 1633309625000
},
"endedAt": {
"$date": 1633310213000
},
"col4": "YYYYYYYYYYYYYYYYYY",
"created_at": {
"$date": 1633310846935
},
"updated_at": {
"$date": 1633310846935
},
"__v": 0
}
']
期望的輸出:

uj5u.com熱心網友回復:
您可以使用json.load將 Json 轉換為 python 中的字典。
可以使用Pandas.Dataframe將此字典轉換為資料框。
您可以使用pandas.Dataframe.to_csv將此資料幀匯出為 .csv ,以便在 Postgres 中使用。
注意: 這需要安裝 Pandas 庫。或者,您可以簡單地安裝 Anaconda(如果您使用任何其他 IDE),并且會安裝最常用的軟體包。
uj5u.com熱心網友回復:
使用下面的代碼。
我使用 PrettyTable 模塊在類似結構的表格中列印。使用這個 - https://www.geeksforgeeks.org/how-to-make-a-table-in-python/用于表程序。
此外,所有標題和值都將存盤在 headers 和 values 變數中。
import json
from prettytable import PrettyTable
value = ['''
{
"_id": {
"$Col1": "XXXXXXX2443"
},
"col2": false,
"col3": "359335050111111",
"startedAt": {
"$date": 1633309625000
},
"endedAt": {
"$date": 1633310213000
},
"col4": "YYYYYYYYYYYYYYYYYY",
"created_at": {
"$date": 1633310846935
},
"updated_at": {
"$date": 1633310846935
},
"__v": 0
}''']
dictionary = json.loads(value[0])
headers = []
values = []
for key in dictionary:
head = key
value = ""
if type(dictionary[key]) == type({}):
for key2 in dictionary[key]:
head = "/" key2
value = dictionary[key][key2]
headers.append(head)
values.append(value)
else:
value = dictionary[key]
headers.append(head)
values.append(value)
print(headers)
print(values)
myTable = PrettyTable(headers)
myTable.add_row(values)
print(myTable)
輸出
['_id/$Col1', 'col2', 'col3', 'startedAt/$date', 'endedAt/$date', 'col4', 'created_at/$date', 'updated_at/$date', '__v']
['XXXXXXX2443', False, '359335050111111', 1633309625000, 1633310213000, 'YYYYYYYYYYYYYYYYYY', 1633310846935, 1633310846935, 0]
------------- ------- ----------------- ----------------- --------------- -------------------- ------------------ ------------------ -----
| _id/$Col1 | col2 | col3 | startedAt/$date | endedAt/$date | col4 | created_at/$date | updated_at/$date | __v |
------------- ------- ----------------- ----------------- --------------- -------------------- ------------------ ------------------ -----
| XXXXXXX2443 | False | 359335050111111 | 1633309625000 | 1633310213000 | YYYYYYYYYYYYYYYYYY | 1633310846935 | 1633310846935 | 0 |
------------- ------- ----------------- ----------------- --------------- -------------------- ------------------ ------------------ -----
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442682.html
下一篇:將json物件分離到不同的索引中
