猿问

(python) 如何将字典值转换为 pandas DataFrame

我的问题如下:

我有一个 txt 文件,它只包含一个带有一个键的字典。该单个键的值是一个包含字典作为列表条目的巨大列表。用于比较的第一个键:值对:

"data": [{"type": "utl", "id": "53150", "attributes": {"timestamp": "T13:00:00Z", "count": 0.0}}, [...etc.]

我尝试了以下方法,通过调用 .values 方法然后使用 list() 将单键字典的值转换为列表:

list_variable = list(dict_variable.values())

但似乎这只是将值转换为只有一个索引的列表,因为当我尝试调用索引 0 时文件崩溃(列表太大),如果我尝试调用索引 1,我会收到一个 KeyError 说明索引超出范围。(我目前的想法是首先将其转换为列表,然后转换为 DataFrame)我是一个该死的初学者,不知道我还能尝试什么。我错过了什么?提前非常感谢!fpr 您的有用意见!


Smart猫小萌
浏览 166回答 2
2回答

慕仙森

以下代码对您有帮助吗?测试.txt"data": [{"type": "utl", "id": "53150", "attributes": {"timestamp": "T13:00:00Z", "count": 0.0}}, {"type": "utl2", "id": "53151", "attributes": {"timestamp": "T12:00:00Z", "count": 1.0}}]from re import findallfrom pandas.io.json import json_normalizewith open("test.txt") as f:    print(json_normalize(eval(findall("{.+}", f.read())[0])))输出:   type     id attributes.timestamp  attributes.count0   utl  53150           T13:00:00Z               0.01  utl2  53151           T12:00:00Z               1.0

富国沪深

对我来说看起来像一个json。尝试使用pandas.json_normalized = {"data": [{"type": "utl", "id": "53150", "attributes": {"timestamp": "T13:00:00Z", "count": 0.0}}]}pd.json_normalize(d['data'])  type     id attributes.timestamp  attributes.count0  utl  53150           T13:00:00Z               0.0
随时随地看视频慕课网APP

相关分类

Python
我要回答