我是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
。但它表明malformed string error
,由于false
在offer
关键的。我知道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
module,更具体地说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}}]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句