TypeError('list index Must is integers, not str',),) 在 Python 中使用 get() 方法



我正在尝试使用以下代码将JSON文件转换为CSV。PARENT_ID和PARENT_TYPE字段在大多数情况下可能为 NULL。如果我使用 result["parent"]["id"],它会返回 KeyError。这就是为什么我想使用 get(( 来返回它们持有的任何值。但是我得到了这些字段的TypeError("列表索引必须是整数,而不是str"(。任何人都可以建议任何解决方法吗? 提前感谢!

">

父"是"结果"字典中的列表。

my_dict_list =[]
try:
for f in os.listdir(file_dir):
if f.endswith('.json') and f.startswith('folders_'):
file_path = os.path.join(file_dir, f)
data = open(file_path, 'r')
for line in data:
my_dict = {}
parsed_data = json.loads(line)
my_dict["REQUEST_ID"] = parsed_data["requestId"]
my_dict["SUCCESS"] = parsed_data["success"]
for result in parsed_data["result"]:
my_dict["NAME"] = result["name"]
my_dict["DESCRIPTION"] = result["description"]
my_dict["FOLDER_ID"] = result["folderId"]["id"]
my_dict["FOLDER_ID_TYPE"] = result["folderId"]["type"]
my_dict["FOLDER_TYPE"] = result["folderType"]
my_dict["PARENT_ID"] = result.get(["parent"]["id"])
my_dict["PARENT_TYPE"] = result.get(["parent"]["type"])

当前,您正在尝试从以下行中带有字符串"parent"的列表访问成员"id":

my_dict["PARENT_ID"] = result.get(["parent"]["id"])

您必须检查结果字典是否包含键"parent"。 结果字典的 get 方法可用于此目的。

如果字典不包含键"parent",则返回None。 否则,请使用 get 方法并尝试获取父项的id

你的代码必须是

my_dict["PARENT_ID"] = result["parent"].get("id") if result.get("parent") else None

相关内容

最新更新