Python将复杂的字符串转换为字典列表

我需要将此对象的unicode或str转换为dict的列表/数组,输入数据为:

[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]

是csv的一列,我通过PANDAS导入,但是我需要类似于dict数组的内容来进行处理

[{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]

谢谢。


喵喔喔
浏览 232回答 1
1回答

九州编程

如果"[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]"输入的是,则需要使用eval()方法将其转换为列表。>>> l = "[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]">>> eval(l)[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]然后,您可以执行以下操作:>>> l = [('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]>>> [{i :j} for i, j in l][{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]如果您使用的熊猫数据框架结构如下:>>> l = [('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]>>> df = pd.DataFrame(l, columns=['name', 'val'])          name  val0   ALMAFUERTE  3281  ALAMAFUERTE    12    ALMFUERTE    13   ALMZFUERTE    1你可以这样做:>>> d = []>>> for _, row in df.iterrows():        d.append({row['name']:row['val']})>>> print(d)[{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python