【发布时间】:2020-04-11 23:07:12
【问题描述】:
我正在尝试从 json 代码创建一个数据框。但我无法访问列表中的多个对象。仅检索第一个值。
这是我的 json 代码:
[{'id': '1', 'fnamae': 'Rasab', 'lname': 'Asdaf', 'Age': 21, 'Language': ['python', 'json'], 'parents': {'mother': {'name': 'Mrs. Mother', 'phone': '1212121212'}, 'father': {'name': 'Mr. Father', 'phone': '1212121212'}}, 'siblings': [{'name': 'jamuna', 'phone': 564851312}, {'name': 'Killana', 'phone': 1212121212}]}, {'id': '2', 'fnamae': 'Muddassir', 'lname': 'Jameel', 'Age': 25, 'Language': ['React', 'json'], 'parents': {'mother': {'name': 'Mrs. Mutherinlaw', 'phone': 9654512}, 'father': {'name': 'Mr. Futherinlaw', 'phone': 53154278}}, 'siblings': [{'name': 'Giallan', 'phone': 998742568}, {'name': 'Simba', 'phone': 12355875}]}, {'id': '3', 'fnamae': 'Farhan', 'lname': 'Akhtar', 'Age': 25, 'Language': ['Drupal', 'PHP'], 'parents': {'mother': {'name': 'Heung min son', 'phone': 89546487}, 'father': {'name': 'Kane', 'phone': 4564823545}}, 'siblings': [{'name': 'Xamcs', 'phone': 78654325}, {'name': 'sinfbad', 'phone': 45648232}]}]
这是我从 json 文件中访问“兄弟姐妹”列表以创建数据框的代码。
s = l['siblings']
df2 = pd.DataFrame(s.str[0].values.tolist())
df2
但是输出是:
name phone
0 jamuna 564851312
1 Giallan 998742568
2 Xamcs 78654325
我的预期输出是包含兄弟姐妹的多个姓名和电话号码。
name phone
0 [jamuna,Killana] 564851312,468451
1 [Giallan,Simba] 998742568,654684
2 [Xamcs, sinfbad] 786543254,654654
当我将代码更改为 s.str[1] 时,我能够检索第二组列表。但是我如何迭代它们
【问题讨论】:
-
你能发布你的预期输出吗?
-
我已经更新了我的预期输出。我不需要完全那样。但是列下需要有多个值。
-
谢谢,非常清楚 :) 我不确定是否有“干净”的方法可以做到这一点,但我已经发布了一个应该可以工作的解决方案
标签: json python-3.x pandas list dataframe