使用正则表达式将python中的字符串中的布尔真转换为真[重复]

Posted

技术标签:

【中文标题】使用正则表达式将python中的字符串中的布尔真转换为真[重复]【英文标题】:Convert Boolean true to True in a string in python using regex [duplicate] 【发布时间】:2020-03-31 10:22:12 【问题描述】:

我是 python 新手。我有一个如下所示的字符串

 """["key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":false,"key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":true,"key":false,"doc":"uniq_id":"false key","retail_price":799,"offer":true
]"""

我需要使用ast 将其转换为字典列表。但由于falseoffer 键中,它显示malformed string error。 我知道python接受True作为布尔值而不是true。所以我使用re 模块将其转换为False,但在字符串中,出现了更多falsetrue。 我需要将字符串中的所有唯一布尔值转换为 python 布尔值。我不知道 regex 格式来改变它。帮我解决一些问题。

import re, ast 
a= """["key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":false,"key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":true,"key":false,"doc":"uniq_id":"false key","retail_price":799,"offer":true
]"""
a = ast.literal_eval(a)
print(a)

所需输出:

["key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":False,"key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":True,,"key":False,"doc":"uniq_id":"false key","retail_price":799,"offer":True
]

【问题讨论】:

你应该使用json而不是ast模块。 如何制作.. ideone.com/NjnSZN @Wiktor Stribiżew,谢谢.. 成功了 【参考方案1】:

如上面评论部分所述,您应该改用json 模块,更具体地说是json.loads

>>> l="""["key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":false,"key":"aadsas","doc":"uniq_id":"false key","retail_price":799,"offer":true,"key":false,"doc":"uniq_id":"false key","retail_price":799,"offer":true ]"""
>>>
>>> import json
>>> json.loads(l)
['key': 'aadsas', 'doc': 'uniq_id': 'false key', 'retail_price': 799, 'offer': False, 'key': 'aadsas', 'doc': 'uniq_id': 'false key', 'retail_price': 799, 'offer': True, 'key': False, 'doc': 'uniq_id': 'false key', 'retail_price': 799, 'offer': True]

【讨论】:

以上是关于使用正则表达式将python中的字符串中的布尔真转换为真[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python正则表达式中的re.S

如何使用 Python 处理 JSON 文件中的正则表达式字符串

python中有没有办法将存储在列表中的正则表达式模式列表应用于单个字符串?

python中的正则表达式

正则表达式 - 将连字符后的文本提取到 Python 中的字典中

Python正则表达式的7个使用典范