我看来是一个包含OrderedDict的OrderdDict,它在我所指的内容中,因为它是'main'OrderedDict。我试图将此对象解析为Pandas DataFrame。 (我使用的是Python 3,Anaconda发行版。)
我搜索并找到了一些关于理解这些数据结构的例子,但是这些例子中的结构似乎与我的不匹配。
正如您在下面的示例中所看到的,我关心的OrderedDicts嵌套在'main'OrderedDict中名为'records'的键中。我想采取以下示例:
li = []
list1 = [(record['Id'], record['Phone'],record['FirstName'],record['LastName'])
for record in od['records']]
li.append(list1)
li[:]
...并获取包含“Id”,“Phone”,“FirstName”,“LastName”和“Email”列的DataFrame。
到目前为止,我已经能够提取出我认为是列表的列表:
{{1}}
此列表策略列表忽略了列名称的可能性。我想请你帮忙把它变成Pandas DataFrame的最后一步。
非常感谢你。
答案 0 :(得分:1)
我不熟悉Pandas DataFrame,但是构建列表字典似乎是一件合适的事情。
# Attributes of interest
attrs = ['Id', 'Phone', 'FirstName', 'LastName', 'Email']
records = od['records']
data = {}
for rec in records:
for k in attrs:
# setdefault initializes the array for key if necessary
data.setdefault(k, []).append(rec[k])
dframe = pandas.DataFrame(data)
print(dframe)
不需要指定字段的解决方案。 attributes
被忽略,因为没有指定如何处理它,尽管它可能像其他人一样处理。
records = od['records']
data = {}
for rec in records:
for k, v in rec.items():
if k == 'attributes':
continue
data.setdefault(k, []).append(v)
dframe = pandas.DataFrame(data)
print(dframe)