gpt4 book ai didi

python - 解析字典中的文本并分成键和值

转载 作者:行者123 更新时间:2023-12-04 14:01:43 24 4
gpt4 key购买 nike

我想解析字典中的一些文本,例如我想要左边有冒号的文本和没有冒号的右边的文本。这样我就可以将带冒号的作为 key,将不带冒号的作为 values

这是数据:

x={0: {0: 'Name in home country:\n                        Kylian Mbappé Lottin\n                                                    Date of birth:\n                            Dec 20, 1998                                \n                                                    Place of birth:\n                            \n                                 Paris\xa0\xa0                            \n                                                                                                Age:\n                                22\n                                                                                            Height:\n                            1,78\xa0m\n                                                Citizenship:\n                            \n                                \xa0\xa0France                            \n                                            Position:\n                        \n                            attack - Centre-Forward                        \n                                                Foot:\n                            right\n                                                                    Player agent:\n                            \n                                                                    Relatives                                                            \n                                            \n                            Current club:\n                        \n                        \n                                                        Paris Saint-Germain                        \n                                                Joined:\n                            \n                                Jul 1, 2018                            \n                            Contract expires:\n                            Jun 30, 2022\n                                                                        Outfitter:\n                            Nike\n                        \n                                                Social-Media:'}}

然后转换为 pandas 数据框:

x = pd.DataFrame(x)

我尝试过的尝试:

x[0][0].replace('\n', '').split("/")[0]

这会删除空格,但我无法选择特定文本并且有很多空格。

我也试过:

x[0][0].replace('\n', ',').split(',')

这工作得更好,因为我实际上可以为我想要的内容编制索引,但是因为 Date of birth 有一个逗号,然后我得到分开的日期,但我宁愿有一个。但我也得到许多只有空格和逗号的空索引值。

例如:

data = {}
for j in range(0, len(x[0][0].replace('\n', ',').split(','))):
for i in x[0]:
print(i.replace('\n', ',').split(',')[j])

虽然我不确定如何设置它以获得如下所示的预期结果,因为拆分大小不同。

预期结果:

{'Name in home country:':["Kylian Mbappé Lottin"],
'Date of birth:':["Dec 20, 1998"],
'Place of birth:':["Paris\xa0\xa0"]
...
...
}

最佳答案

您可以使用 re.split 格式化数据,然后使用 zip 创建字典:

import re
x={0: {0: 'Name in home country:\n Kylian Mbappé Lottin\n Date of birth:\n Dec 20, 1998 \n Place of birth:\n \n Paris\xa0\xa0 \n Age:\n 22\n Height:\n 1,78\xa0m\n Citizenship:\n \n \xa0\xa0France \n Position:\n \n attack - Centre-Forward \n Foot:\n right\n Player agent:\n \n Relatives \n \n Current club:\n \n \n Paris Saint-Germain \n Joined:\n \n Jul 1, 2018 \n Contract expires:\n Jun 30, 2022\n Outfitter:\n Nike\n \n Social-Media:'}}
kv = re.split(r':?\s*\n\s*', x[0][0])
print(dict(zip(kv[::2], kv[1::2])))

输出:

{'Name in home country': 'Kylian Mbappé Lottin', 'Date of birth': 'Dec 20, 1998', 'Place of birth': 'Paris', 'Age': '22', 'Height': '1,78\xa0m', 'Citizenship': 'France', 'Position': 'attack - Centre-Forward', 'Foot': 'right', 'Player agent': 'Relatives', 'Current club': 'Paris Saint-Germain', 'Joined': 'Jul 1, 2018', 'Contract expires': 'Jun 30, 2022', 'Outfitter': 'Nike'}

关于python - 解析字典中的文本并分成键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69797860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com