【发布时间】:2021-10-14 23:45:36
【问题描述】:
我有以下 JSON 代码被读入我的 python 文件:
{
"10":
{
"object": 10,
"singles": [
{
"name": "Hello",
"special_numbers": [1,2,5]
},
{
"name": "World",
"special_numbers": [1,10]
}
],
"doubles": []
}
}
文件由此打开:
objects_config = None
with open("file_objects.json", "r") as file:
objects_config = json.load(file)
读取它发生在另一个文件中,导致此处底部列出的异常:
// the request.object is a string of 10
object_details = MyClass(**object_config[str(request.object)]["singles"])
这是 JSON 将写入的类:
from typing import List
class MyClass(object):
name = None
special_numbers = None
def __init__(self, name: str, special_numbers: List[int]):
self.name = name
self.special_numbers = special_numbers
#debug
def __repr__(self):
return f'<MyClass(name={self.name})>'
例外是这样的:
type object argument after ** must be a mapping, not list
不太清楚 python 的超级新手会发生什么。
【问题讨论】:
-
object["singles"]是一个列表,而不是字典。 ** 语法用于将字典作为关键字参数传递。您想要列表中的第一项吗? -
如果
request.object已经是一个字符串,那么传递给str()是没有意义的。 -
很酷,谢谢。我正在尝试快速学习 python。
-
如果我忽略 JSON 中的第一行会发生什么?如“对象”:10 部分
-
object_config = None没有做任何有用的事情。你可以省略它。
标签: python python-3.x python-requests