我正在使用Python请求库从API中获取一些数据。但是,在输出字典中,我想要一个列表。我希望在data_providers键中有一个列表,其中name、url和api_url的第一个条目将被硬编码,第二个条目将从响应中获得。目前,我得到了错误TypeError: unhashable type: 'dict',我的代码如下所示
output_dict = {
'data_providers' : {
{
'name': 'NBN Atlas',
'url': 'https://registry.nbnatlas.org/datasets',
'api_url': 'https://registry.nbnatlas.org/ws/dataResource',
},
{
'name': owner_name,
'url': owner_url,
'api_url': owner_api_url,
},
}
}在运行代码并将其转储到JSON文件后,我想要的响应应该如下所示:
[
{
"data_providers": [
{
"name": "NBN Atlas",
"url": "https://registry.nbnatlas.org/datasets",
"api_url": "https://registry.nbnatlas.org/ws/dataResource"
},
{
"name": "Marine Biological Association",
"url": "https://registry.nbnatlas.org/public/show/dp80",
"api_url": "https://registry.nbnatlas.org/ws/dataProvider/dp80"
}
]
}
]有什么办法吗?
发布于 2022-09-03 20:57:26
如果我正确理解了您的问题,您希望修复unhashable type错误并显示有效的JSON。如果是这样,您可以通过将data_providers字典更改为列表来更正错误,因为它包含多个嵌套字典。
output_dict = {
'data_providers': [
{
'name': 'NBN Atlas',
'url': 'https://registry.nbnatlas.org/datasets',
'api_url': 'https://registry.nbnatlas.org/ws/dataResource'
},
{
'name': owner_name,
'url': owner_url,
'api_url': owner_api_url
}
]
}现在可以使用类似于print(json.dumps(output_dict))的语句将结果显示为JSON。
https://stackoverflow.com/questions/73595329
复制相似问题