簡體   English   中英

將帶有嵌套字典的 json 轉換為帶有 python 的數據框

[英]convert json with nested dicts into data frame with python

有人可以解釋我如何將以下 json 轉換為具有以下標題的簡單數據框嗎?

- - - 樣本 - -

{
    "last_scanned_block": 14968718,
    "blocks": {
        "13965799": {
            "0x9603846aff5c425277e483de16179a68dbc739debcc5449ea99e45c9d0924430": {
                "165": {
                    "from": "0x0000000000000000000000000000000000000000",
                    "to": "0x01f87c337be5636Cd9B3D48F1159768A7e7837A5",
                    "value": 100000000000000000000000000,
                    "timestamp": "2022-01-08T16:19:02"
                }
            }
        },
        "13965820": {
            "0xd4a4122734a522c40504c8b0ab43b9aa40ac821cd9913179b3ae64e5b166fc57": {
                "226": {
                    "from": "0x01f87c337be5636Cd9B3D48F1159768A7e7837A5",
                    "to": "0xEa3Fa123Eb40CEEaeED390D8d6dE6AF95f044AF7",
                    "value": 610000000000000000000000,
                    "timestamp": "2022-01-08T16:25:12"
                }
            }
        },

- - 結尾 - -

我希望 df 具有以下 8 列標題和每行的值

(第一行的值示例)

  • Last_scanned_block:14968718
  • 區塊:13965799
  • 十六進制:0x9603846aff5c425277e483de16179a68dbc739debcc5449ea99e45c9d0924430
  • 數量:165
  • 來自:0x0000000000000000000000000000000000000000
  • 至:0x01f87c337be5636Cd9B3D48F1159768A7e7837A5
  • 值:100000000000000000000000000
  • 時間戳:2022-01-08T16:19:02

謝謝

我會根據傳入的 json 制作一本新詞典。本質上,您不想像上面那樣使用嵌套詞典,而是希望根據您的標題和值將它們放入一個簡單的詞典中。 它應該是:

*heading name* : *list of values*

本質上,生成的格式應該是:

{"Last_scanned_block" : [14968718], "block" : [13965799], "hex" : ["0x9603846aff5c425277e483de16179a68dbc739debcc5449ea99e45c9d0924430"], "number" : [165], "from" : ["0x0000000000000000000000000000000000000000"], "to" : ["0x01f87c337be5636Cd9B3D48F1159768A7e7837A5"], "value": [100000000000000000000000000], "timestamp" : ["2022-01-08T16:19:02"]}

然后,每次您閱讀更多數據時,您只需將 append 放入字典中的每個相應列表即可。

一旦你有了完整的字典,你就會使用 pandas。所以一些事情是這樣的:

import pandas
d = *the dictionary above*
frame = pandas.DataFrame(data = d)
print(frame)

暫無
暫無

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

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