gpt4 book ai didi

python - 将格式不正确的字符串转换为字典?

转载 作者:行者123 更新时间:2023-12-04 15:11:32 24 4
gpt4 key购买 nike

现在的问题是我有一个字符串

'{ecl:gry, hcl:#888785, eyr:2023, cid:63, iyr:2019, hgt:177cm, pid:656793259}'

我无法将 ast.literal_eval 转换为字典,因为它的格式不正确。所以我尝试用引号将字母数字字符括起来。

        output = ""
quoting = False
for char in string:
if char.isalnum():
if not quoting:
output += '"'
quoting = True
elif quoting:
output += '"'
quoting = False
output += char

但是,一些键值对的值以特殊字符开头。这导致:

"hcl":#"888785",

代替:

"hcl":"#888785",

因此,在为 ast.literal_eval() 重新格式化我的字符串时,我最接近的是

{"ecl":"gry", "hcl":#"888785", "eyr":"2023", "cid":"63", "iyr":"2019", "hgt":"177cm", "pid":"656793259"}

如何在将这个字符串转换为字典的同时包含特殊字符?

最佳答案

这里有一个 oneliner 可以做到这一点。这会剥离 {} 字符,在 ', ' 上拆分,然后在 : 上进一步拆分每个结果。这些结果然后变成 key v 值对创建一个字典。

sval= '{ecl:gry, hcl:#888785, eyr:2023, cid:63, iyr:2019, hgt:177cm, pid:656793259}'
sval = {k:v for (k,v) in [s.split(':') for s in sval.strip('{}').split(', ')]}
>>> sval
{'ecl': 'gry', 'hcl': '#888785', 'eyr': '2023', 'cid': '63', 'iyr': '2019', 'hgt': '177cm', 'pid': '656793259'}

关于python - 将格式不正确的字符串转换为字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65151378/

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