Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将复杂字符串转换为Dict列表_Python_Pandas_Numpy - Fatal编程技术网

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

Python将复杂字符串转换为Dict列表,python,pandas,numpy,Python,Pandas,Numpy,我需要将此对象unicode或str转换为dict的列表/数组,输入数据为: [('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)] 是csv的一列,我用PANDAS导入它,但我需要类似于dict数组的东西进行处理 [{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}] 谢谢。如果“[('A

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

[('ALMAFUERTE', 328), ('ALAMAFUERTE', 1), ('ALMFUERTE', 1), ('ALMZFUERTE', 1)]
是csv的一列,我用PANDAS导入它,但我需要类似于dict数组的东西进行处理

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

如果
“[('ALMAFUERTE',328),('almafauerte',1),('ALMFUERTE',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  val
0   ALMAFUERTE  328
1  ALAMAFUERTE    1
2    ALMFUERTE    1
3   ALMZFUERTE    1
您可以这样做:

>>> d = []
>>> for _, row in df.iterrows():
        d.append({row['name']:row['val']})

>>> print(d)
[{'ALMAFUERTE': 328}, {'ALAMAFUERTE': 1}, {'ALMFUERTE': 1}, {'ALMZFUERTE': 1}]

[dict(l)]
,如果
l
是您的输入列表
[{i:j}代表i,j in l]
@sacul请查看我对Brandon Wang Answer的回复如果这是您的CSV文件,那么它不是CSV文件。更重要的是:您是如何获得该文件的?您是否编写了一些代码,这些代码只执行类似于
f.write(str(list\u of\u pairs))
?如果是这样,那么这就是您需要修复的代码。您应该以某种格式写入数据,以便读回和解析,如JSON或CSV,而不仅仅是存储Python字符串表示,然后希望您能够在以后找到解析方法。如果数据类型是列表,这是完美的,但我需要将数据类型转换为列表,当我列出(l)时,它返回以下内容:['[','(',“'”","A","L","M","A","F","E","R","T","E"","E"""E"","A","M","F","U"E","R",""","T"。我将编辑我的答案。谢谢Brandom,使用eval()非常有效。非常感谢@用户3483203原因是什么?@GermanAvalos他们可能指的是这个