我正在尝试将此字符串转换为json对象:-
coordinates = "{ lat: '55,7303650017903', lng: '12,3446636123658' }"
我尝试使用json.loads(),但对我而言不起作用。 有办法可以实现吗?
答案 0 :(得分:3)
我建议使用demjson python解析器来实现此目的,因为字符串是js对象
import demjson
print(demjson.decode("{ lat: '55,7303650017903', lng: '12,3446636123658' }"))
答案 1 :(得分:2)
使用正则表达式在密钥周围添加引号,然后使用ast
模块
例如:
import re
import ast
coordinates = "{ lat: '55,7303650017903', lng: '12,3446636123658' }"
coordinates = re.sub(r"(\w+)(?=:)", r'"\1"', coordinates)
print(ast.literal_eval(coordinates))
输出:
{'lat': '55,7303650017903', 'lng': '12,3446636123658'}
答案 2 :(得分:1)
可能的解决方案是使用正则表达式:
import re
coordinates = "{ lat: '55,7303650017903', lng: '12,3446636123658' }"
pattern = r"{ lat: '(.*)', lng: '(.*)' }"
lat, lng = re.findall(pattern, coordinates)[0]
此解决方案不需要导入re
之后的任何其他软件包。如果需要,则需要具有这些值的字典:
cords = { "lat": lat, "lng": lng }
答案 3 :(得分:-1)
您需要使用json.loads:
import json
coordinates = '{ "lat": "55,7303650017903", "lng": "12,3446636123658" }'
datastore = json.loads(coordinates)
print(json.dumps(datastore))
您可以尝试在线复制:https://repl.it/languages/python3