python字符串(js变量类型)到字典

发布于 2025-01-16 08:23:50 字数 984 浏览 1 评论 0原文

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

我正在尝试正则表达式 r"},\s\]",但没有得到所需的结果。

HTTP 请求正文

内容类型:text/html

var sample = {
        "date": "2022. 03. 23. 16:18",
        "list":
                [
                         {
                                "name": "USD",
                                "var1":"1236.26",
                                "var2":"1193.74",
                                "var3":"1226.90",
                                "var4":"1203.10",
                                "var5":"1215.00"
                         },
                         {
                                "name": "JPY",
                                "var1":"1020.81",
                                "var2":"985.71",
                                "var3":"1013.09",
                                "var4":"993.43",
                                "var5":"1003.26"
                         },
                ]
    }

How do I convert this string to a dictionary

I'm trying regex r"},\s\]", but didn't get the desired result.

HTTP request body

Content-Type: text/html

var sample = {
        "date": "2022. 03. 23. 16:18",
        "list":
                [
                         {
                                "name": "USD",
                                "var1":"1236.26",
                                "var2":"1193.74",
                                "var3":"1226.90",
                                "var4":"1203.10",
                                "var5":"1215.00"
                         },
                         {
                                "name": "JPY",
                                "var1":"1020.81",
                                "var2":"985.71",
                                "var3":"1013.09",
                                "var4":"993.43",
                                "var5":"1003.26"
                         },
                ]
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白云不回头 2025-01-23 08:23:50

首先,我们需要去掉所有尾随逗号:

_sample = sample.replace("\n", "").replace(" ", "").replace(",]", "]")

您也可以使用正则表达式:

import re

_sample = re.sub(r",(\s)+]", "]", sample)

然后使用 json.loads() 将其解析为字典。

import json

outcome = json.loads(_sample)

超越 OQ
如果我们也可能在字典的最后一个键值后面有尾随逗号:例如 {"var5": "1215.00",} 您可以将上面的代码更新为:

_sample = sample.replace("\n", "").replace(" ", "").replace(",}", "}").replace(",]", "]")

或者使用正则表达式:

regex = r"(,(\s)+]|,(\s)+})"

First we need to get rid of any trailing commas:

_sample = sample.replace("\n", "").replace(" ", "").replace(",]", "]")

You can also use regex for this:

import re

_sample = re.sub(r",(\s)+]", "]", sample)

Then use json.loads() to parse it into a dict.

import json

outcome = json.loads(_sample)

Beyond the OQ
If it is also possible that we'd have trailing commas after the last key-value of a dictionary: e.g. {"var5": "1215.00",} you can update the above code to:

_sample = sample.replace("\n", "").replace(" ", "").replace(",}", "}").replace(",]", "]")

Or with regex:

regex = r"(,(\s)+]|,(\s)+})"
可爱暴击 2025-01-23 08:23:50
import json

sample = """{
    "date": "2022. 03. 23. 16:18",
    "list":
    [
        {
            "name": "USD",
            "var1": "1236.26",
            "var2": "1193.74",
            "var3": "1226.90",
            "var4": "1203.10",
            "var5": "1215.00"
        },
        {
            "name": "JPY",
            "var1": "1020.81",
            "var2": "985.71",
            "var3": "1013.09",
            "var4": "993.43",
            "var5": "1003.26"
        },
    ]
}"""


to_dict = json.loads(sample)
import json

sample = """{
    "date": "2022. 03. 23. 16:18",
    "list":
    [
        {
            "name": "USD",
            "var1": "1236.26",
            "var2": "1193.74",
            "var3": "1226.90",
            "var4": "1203.10",
            "var5": "1215.00"
        },
        {
            "name": "JPY",
            "var1": "1020.81",
            "var2": "985.71",
            "var3": "1013.09",
            "var4": "993.43",
            "var5": "1003.26"
        },
    ]
}"""


to_dict = json.loads(sample)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文