我已从此网页下载了一个 .json 文件,并使用以下命令将其转换为字典:
import urllib.request, json
with urllib.request.urlopen("https://www.bcusu.com/svc/voting/stats/election/paramstats/109?groupIds=1,12,7,3,6&sortBy=itemname&sortDirection=ascending") as url:
data = json.loads(url.read().decode())
#print(data)
我的最终目标是将我的字典
data
转换为pandas数据框。主要问题在于data
字典是嵌套的,更进一步复杂的是,有一个单独的列(Groups
)也是嵌套的。我找到了这个解决方案,它可以处理以下形式的“统一”嵌套字典:
user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
'Category 2': {'att_1': 23, 'att_2': 'another'}},
15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
'Category 2': {'att_1': 30, 'att_2': 'bar'}}}
“uniformly nested” 指的是上面数据框中的外部和内部键都具有相同数量的键:
12
和 15
都有 两个 键 Category 1
和 Category 2
,最后还有两个键 att 1
和 att 2
,而这在我的 data
中并不是这样的。