【发布时间】:2019-04-23 20:28:58
【问题描述】:
我有一个包含以下内容的 json 文件:
#create test.json and add content
dbutils.fs.put("test.json",'{"type": "abc","project_id": "abc","private_key_id": "123","private_key": "-----BEGIN PRIVATE KEY----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCJ05O/Ke3tGA96\n-----END PRIVATE KEY-----\n","client_email": "abc@gmail.com","client_id": "345","auth_uri": "https://accounts.abc.com/o/oauth2/auth","token_uri": "https://abc","auth_provider_x509_cert_url": "https://abc","client_x509_cert_url": "https://abcrobot/v1/metadata/x509"}'
#Read test.json
json.loads(test.json)
#Error
JSONDecodeError: Invalid control character
我做错了什么?
【问题讨论】:
-
您错误地使用了
json.loads方法。见herewith open('test.json','r') as json_file: json.loads(json_file) -
好像在
-----END PRIVATE之后漏掉了一个",应该是'{"private_key": "--END PRIVATE" }'而不是'{"private_key": "--END PRIVATE}' -
@P3qiUB 缺少 " 是由于我的复制和粘贴错误,但实际脚本有正确的引用。因此,您的建议不起作用。
-
您的 JSON 无效;创建字典并使用
json.dumps生成它。 -
问题在于 Python 将
\n视为文字换行符,它不能出现在 JSON 中。