使用正则表达式将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
将其转换为字典列表。但由于false
在offer
键中,它显示malformed string error
。
我知道python接受True
作为布尔值而不是true
。所以我使用re
模块将其转换为False
,但在字符串中,出现了更多false
或true
。
我需要将字符串中的所有唯一布尔值转换为 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 处理 JSON 文件中的正则表达式字符串
python中有没有办法将存储在列表中的正则表达式模式列表应用于单个字符串?