python - 在 Python 中加载不完全是 JSON 的字符串

标签 python

不幸的是,我收到了来自服务的文本格式的响应,我不能要求他们以 JSON 格式发送给我)下面是响应:

'{message: Successfully sent data for processing, execId: d03c96hg-4098-47b9-9e4b-3cb2c}'

我想将其转换为 dict 或 json,但我无法这样做,因为“{ }”中的字符串没有单引号或双引号。

我尝试过使用 json.loads()json.dumps()ast.literal() 以及其他一些方法, 但无法实现所需的输出。

期望的输出是:

{'message': 'Successfully sent data for processing', 'execId' : 'd03c96hg-4098-47b9-9e4b-3cb2c' }

最佳答案

通过一些字符串操作,您可以像这样转换:

代码:

def my_convert(a_string):
    convert = a_string.replace(
        ': ', '": "').replace(
        '}', '"}').replace(
        ', ', '", "').replace(
        '{', '{"')

    return json.loads(convert)

测试代码:

import json
data = '{message: Successfully sent data for processing, ' \
       'execId: d03c96hg-4098-47b9-9e4b-3cb2c}'

print(my_convert(data))

结果:

{'message': 'Successfully sent data for processing', 'execId': 'd03c96hg-4098-47b9-9e4b-3cb2c'}

关于python - 在 Python 中加载不完全是 JSON 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657067/

相关文章:

python - Azure 应用服务上的 Python 本地日志在哪里?

python - Python 中的一切都像 Ruby 一样是对象吗?

python - 从json模式动态创建mongoengine类

python - Python 中测试文件的最佳命名约定是什么?

python - Scrapy 抓取第一页但不跟踪链接

javascript - 链接到选择小部件的 Bokeh 数据表

python - 解析以引号开头的 tsv 文件

python - 我想使用用户在一个屏幕上在其他屏幕上输入的文本作为标题(按钮或标签)

python - 如何在 Windows 上使用 Apache 2.2 和 Python 3.2 编译 mod_wsgi?

python - 使用多处理并行运行多个 tesseract 实例不返回任何结果