如何将字符串转换为字典?

时间:2020-03-09 11:01:24

标签: json python-3.x

我正在尝试将此字符串转换为json对象:-

coordinates = "{ lat: '55,7303650017903', lng: '12,3446636123658' }"

我尝试使用json.loads(),但对我而言不起作用。 有办法可以实现吗?

4 个答案:

答案 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