簡體   English   中英

在字符串中訪問python列表或Dictionary

[英]accessing python list or Dictionary inside a string

我正在使用Python嘗試訪問包含字典列表的CSV文件中的字符串格式的字段。

一列train['list_of_production_companies']

"[{'name': 'Lions Gate Films', 'id': 35}, {'name': 'Vertigo Entertainment', 'id': 829}, {'name': 'Gotham Group', 'id': 3672}, {'name': 'Tailor Made', 'id': 24557}, {'name': 'Mango Farms', 'id': 24558}, {'name': 'Quick Six Entertainment', 'id': 24561}]"

train['list_of_production_companies'] = train['production_companies'].apply(lambda x: [i['name'] for i in x]  if i[name] != {} else [])

()最近一次調用NameError()最近一次調用()()最近一次調用()–> 1 train ['list_of_production_companies'] = train ['production_companies']。apply(lambda x:[i.x中i的i.name]如果i.name! = {}其他[])

適用於C:\\ ProgramData \\ Anaconda3 \\ lib \\ site-packages \\ pandas \\ core \\ series.py(self,func,convert_dtype,args,** kwds)3190
否則:3191個值= self.astype(object).values-> 3192個映射= lib.map_infer(values,f,convert = convert_dtype)3193 3194如果len(mapped)和isinstance(mapped [0],Series):

pandas._libs.lib.map_infer()中的pandas / _libs / src \\ inference.pyx

在(x)---->中1火車['list_of_production_companies'] =火車['production_companies']。apply(lambda x:[i。x中i的名稱],如果i.name!= {}其他[])

NameError:未定義名稱“ i”

您對lambda函數的理解不正確。

采用:

train['list_of_production_companies'] = train['production_companies'].apply(lambda x: [i['name'] if 'name' in i else [] for i in x])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM