【问题标题】:How to convert following string to JSON in python如何在python中将以下字符串转换为JSON
【发布时间】:2019-10-24 11:43:42
【问题描述】:

如何使用 python 将以下字符串转换为 JSON?

str1 = "{'a':'1', 'b':'2'}"

【问题讨论】:

  • 那个字符串 JSON。您的意思是如何将该 JSON 解析为 Python 字典?
  • 您好,欢迎来到 SO。您可能想了解How to Ask 并尝试自己做最少的搜索工作。提示:这是in the stdlib
  • 这能回答你的问题吗? Convert JSON string to dict using Python
  • 这个字符串不是 JSON。它在键和值周围使用单引号。
  • str1 = str1.replace("'", '"') 然后使用链接中的解决方案。

标签: json python-3.x


【解决方案1】:

python 中的 json 库有一个函数 loads,它使您能够将字符串(JSON 格式)转换为 JSON。以下代码供您参考:

import json

str1 = '{"a":"1", "b":"2"}'
data = json.loads(str1)

print(data)

注意:您必须使用' 来包围字符串,而" 用于对象及其值。

【讨论】:

    【解决方案2】:

    OP 的问题中的字符串不是 JSON,因为键和值用单引号括起来。函数ast.literal_eval可以用来把这个字符串解析成Python字典。

    import ast
    str1 = "{'a':'1', 'b':'2'}"
    d = ast.literal_eval(str1)
    d["a"]  # output is "1"
    

    https://stackoverflow.com/a/58540688/5666087https://stackoverflow.com/a/58540879/5666087 等其他答案能够使用 json 库,因为它们将 str1"{'a':'1', 'b':'2'}" 更改为 '{"a":"1", "b":"2"}'。前者是无效的 JSON,而后者是有效的 JSON。

    【讨论】:

      【解决方案3】:
      import json
      
      str1 = '{"a":"1", "b":"2"}'
      
      jsonData = json.loads(str1)
      
      print(jsonData["a"])
      

      参考:LINK

      【讨论】:

      • "ValueError: Expecting property name: line 1 column 2 (char 1)" - 最好在发布之前测试您的代码。另外,参考文档是docs.python.org/3/library/json.html
      • 嗨@tyb9900!你努力贡献了答案。但是,JSON 的字符串应该包含在 ' 中,而不是 " 中。希望这能帮助您改进答案。
      猜你喜欢
      • 2016-12-19
      • 2017-05-20
      • 2017-08-11
      • 2023-03-20
      • 2014-04-18
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      相关资源
      最近更新 更多