【发布时间】:2020-03-08 20:06:04
【问题描述】:
我有一个类似 JSON -
[
{
"key": "033298fd-f792-4343-b145-852e9cdb680a",
"value": {
"total": 15452,
"history": {
"2019-11-05T23:05:14.53878Z": {
"challenge": "readrules",
"increase": 1,
"total": 1
},
"2019-11-05T23:17:48.849886Z": {
"challenge": "looksthesame",
"increase": 100,
"total": 1601
}
},
...
...
...
}
.... 2nd 'key' ....
}
每个“键”后跟一个“值”,其具有history。这个“历史”再次有一个“键”,即timestamp,以及一个包含挑战详细信息challenge、increase 和total 的值。
我想将其转换为看起来像的熊猫数据框 -
key timestamp challenge increase total
033298fd-f792-4343-b145-852e9cdb680a 2019-11-05T23:05:14.53878Z readrules 1 1
033298fd-f792-4343-b145-852e9cdb680a 2019-11-05T23:17:48.84986Z looksthesame 100 101
我尝试与 -
pd.io.json.json_normalize(json)
但这只是将整个 json 扁平化为不同的列。
【问题讨论】:
-
您想要的结果被大大截断了。请对其进行编辑,以便人们了解您的目标。或者更好地描述您想要的列名/结构。
-
Pandas
json_normalize不会神奇地给出你需要的结构。您需要重组您的输入 json,以便数组中的每个元素代表一行,即在您的情况下为timestamp -
我同意@FatihAkici。至少我们需要正确描述数据的转换。
-
已编辑。我希望它现在更具描述性!
-
除了
json_normalize()之外,你有没有尝试过?
标签: python json pandas dataframe