首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:转换为JSON格式

Python:转换为JSON格式
EN

Stack Overflow用户
提问于 2020-08-27 17:50:09
回答 1查看 27关注 0票数 0

Requirement:将纯文本转换为JSON格式

输入:

代码语言:javascript
复制
  data3 =   "{   'type': 'service_account',   'project_id': 'innate-paratext-90872'}"

预期的JSON格式输出:

代码语言:javascript
复制
{
    "type": "service_account",
    "project_id": "innate-paratext-90872"
}

Tried: Method 1

代码语言:javascript
复制
json_str = json.dumps(data3)

输出

代码语言:javascript
复制
"{   'type': 'service_account',   'project_id': 'innate-paratext-90872'}"

方法2:

代码语言:javascript
复制
json_str = json.loads(data3)

误差

代码语言:javascript
复制
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 5 (char 4)

编辑1: Mark给出的解决方案很好,但下面举例说明了一些

代码语言:javascript
复制
data3 = "{'type': 'service_account',   'project_id': 'innate-paratext-90872',   'private_key': '-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BA\\n-----END PRIVATE KEY-----\\n'}",

预期输出:

代码语言:javascript
复制
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BA\n-----END PRIVATE KEY-----\n",

您的代码输出:(它去掉了“\n”中的"\“)

代码语言:javascript
复制
"private_key": "-----BEGIN PRIVATE KEY-----nMIIEvgIBADANBgkqhkiG9w0BAn-----END PRIVATE KEY-----n",
EN

回答 1

Stack Overflow用户

发布于 2020-08-27 17:52:31

您的字符串是Python源代码格式,因此可以使用ast.literal_eval将其转换为适合json.dumps的真正Python字典。

代码语言:javascript
复制
>>> s = "{   'type': 'service_account',   'project_id': 'innate-paratext-90872'}"
>>> import ast
>>> d = ast.literal_eval(s)
>>> d
{'type': 'service_account', 'project_id': 'innate-paratext-90872'}
>>> import json
>>> print(json.dumps(d,indent=4))
{
    "type": "service_account",
    "project_id": "innate-paratext-90872"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63621631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档