我有一个 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
}
']
Run Code Online (Sandbox Code Playgroud)
期望的输出:
小智 8
您可以使用json.load将 Json 转换为 python 中的字典。
可以使用Pandas.Dataframe将该字典转换为数据帧。
您可以使用pandas.Dataframe.to_csv将此数据帧导出为 .csv,以便在 Postgres 中使用。
注意: 这需要安装 Pandas 库。或者,您可以简单地安装 Anaconda(如果您使用任何其他 IDE),并且最常用的软件包会随之安装。
使用下面的代码。
我使用 PrettyTable 模块在类似表格的结构中进行打印。使用此 - https://www.geeksforgeeks.org/how-to-make-a-table-in-python/作为表过程。
此外,所有标头和值都将存储在标头和值变量中。
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)
Run Code Online (Sandbox Code Playgroud)
输出
['_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 |
+-------------+-------+-----------------+-----------------+---------------+--------------------+------------------+------------------+-----+
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23234 次 |
最近记录: |