我正在尝试处理JSON文件并将其转储回去。
下面是JSON文件-请注意下面如何包装两个字典... :
{"installed":
{"client_id":"xxx",
"project_id":"quickstart-1557411376659",
"auth_uri":"xxx",
"token_uri":"xxx",
"auth_provider_x509_cert_url":"xxx",
"client_secret":"xxx",
"redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]
}
}
我正在尝试使用以下python代码读取JSON文件以对其进行操作,然后将其写回。
with open('google_sheets_credentials.json', 'r+') as file:
google_sheets_auth_dict = json.load(file)
#Manipulate file contents here
with open('google_sheets_credentials.json', 'r+') as file:
json.dump(google_sheets_auth_dict, file)
此代码在运行几次后失败,因为需要将多个字典包装在列表中才能以JSON格式写出-像这样:
解释此要求的原因here
with open('google_sheets_credentials.json', 'r+') as file:
json.dump([google_sheets_auth_dict], file)
问题在于,在这种情况下我无法做到这一点,因为该JSON最终将被馈送到Google Sheets的API中,因此它不希望将JSON包装在列表中。
我该如何以Google期望的格式读取,处理和吐出文件?
答案 0 :(得分:1)
此示例案例:
import json
example_json = '''{"installed":
{"client_id":"xxx",
"project_id":"quickstart-1557411376659",
"auth_uri":"xxx",
"token_uri":"xxx",
"auth_provider_x509_cert_url":"xxx",
"client_secret":"xxx",
"redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]
}
}'''
google_sheets_auth_dict = json.loads(example_json)
google_sheets_auth_dict['client_id'] = 'yyy'
print(json.dumps(google_sheets_auth_dict))
我猜测#Manipulate file contents here
位出现了问题,未显示。或者,示例JSON看起来不像失败案例。