【问题标题】:Parse a string into Dictionary [closed]将字符串解析为字典 [关闭]
【发布时间】:2014-06-22 10:18:24
【问题描述】:

我有一个字符串,它肯定是字典形式的。 我需要解析它并将其存储为python中的字典。

我试过的是这样的:

myObj={}
tmp=""
if ':' in line:
    key,value = line.split(':')
    key = key.strip('"')
    value = value.lstrip(' ').rstrip(',')
    if value == '{':
        tmp += key + '.'
    if value == '}':
        tmp = ''
    if(value!="{"):
        myObj[tmp + key] = value

逐行读取并解析。但我面临着不同格式的问题。

对于 E.G.

        {
        "id": 1,
        "name": "Foo",
        "price": 123,
        "tags": [ "Bar", "Eek" ],
        "stock": {
            "warehouse": 300,
            "retail": 20
        }
    }

不使用 eval 或任何内置函数或库,如 json。我可以在这里使用正则表达式吗? 我该怎么做呢?

【问题讨论】:

  • 为什么“不使用eval或任何内置函数或库”
  • 真的,您明确排除了提供的库?注意re也是一个库。你需要告诉我们为什么你有这样任意的限制。
  • 那么解析就没有任何意义了。我需要解析它。
  • 您无法使用正则表达式解析 JSON - 它是 not a regular language
  • 那么请告诉我们您到目前为止尝试了什么;编写解析器并非易事。

标签: python dictionary


【解决方案1】:

你有 JSON 数据,使用 json library 解析它:

import json

data = json.loads(yourstring)

Python 自带电池,不要重新发明轮子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多