Python 数据帧中类似字典的字符串列表

Python 数据帧中类似字典的字符串列表,python,pandas,dictionary,Python,Pandas,Dictionary,我有一个字符串列表,示例如下。这些字符串看起来像一个dict,但它们不是。我想从下面创建一个数据框,其中包含列名称、电话号码、国家、电子邮件地址、最佳通话时间 这个列表相当大,所以我不知道有多少列名称 ['{Name: Charlie person}', '{Telephone Number: 454895656}', '{Country:}', '{Email Address: charlie@email.com}', '{Name: Karen}', '{Telephone Nu

我有一个字符串列表,示例如下。这些字符串看起来像一个dict,但它们不是。我想从下面创建一个数据框,其中包含列名称、电话号码、国家、电子邮件地址、最佳通话时间

这个列表相当大,所以我不知道有多少列名称

 ['{Name: Charlie person}',
 '{Telephone Number: 454895656}',
 '{Country:}',
 '{Email Address: charlie@email.com}',
 '{Name: Karen}',
 '{Telephone Number: 1515451645}',
 '{Email Address: karen@aol.com}',
 '{Name: Sally Lastname}',
 '{Telephone Number: 151451465456}',
 '{Country: USA}',
 '{Email Address: SallyLastname@GMAIL.COM}',
 '{Best time to Call: DAYTIME}']
如果它们实际上是字典,这并不困难,但事实并非如此。我尝试使用以下命令将其转换为dict:

from ast import literal_eval
for dct in dict_list:
    literal_eval(dct)
但这给我带来了一个语法错误。有什么想法吗?多谢各位

缩写的期望输出如下所示

             Name   Telephone Number        Email Address
0  Charlie Person          215465121    charlie@email.com
1           Karen       265458614566        karen@aol.com

我进行了常规的字符串操作(剥离
{
}
并按
进行拆分)

然后,每当我遇到
key==“Name”
时,我就会打开一条新记录,最后使用
pd.DataFrame.from_records
来获取数据帧

试试这个:

将熊猫作为pd导入
dict_list=[{name:Charlie person}',
“{电话号码:454895656}”,
“{国家:}”,
{电邮地址:charlie@email.com}',
“{Name:Karen}”,
“{电话号码:1515451645}”,
{电邮地址:karen@aol.com}',
“{Name:Sally Lastname}”,
“{电话号码:151451465456}”,
“{国家:美国}”,
{电邮地址:SallyLastname@GMAIL.COM}',
“{最佳通话时间:白天}”
记录=[]
对于dict_列表中的d_str:
key,value=map(str.strip,d_str.strip('{}').split(“:”,maxslit=1))
key=key.title()
如果键==“名称”:
records.append({})
记录[-1][key]=值
df=pd.DataFrame.from_记录(记录)
打印(df)

非常接近我要发布的内容。很好(-:这在我提供的示例中有效,但在实际列表中,我得到了
值错误:太多的值无法解包(预期为2)
注意:如果您有有意义的
{
}
,或
在键/值中,它可能会把整个事情搞砸up@Vink我编辑了答案,现在
value
将在第一次
后解包到所有内容:
bangggggg,谢谢!我会在1分钟内接受它,当它允许我