我是Python編程的新手。 我想使用python將YAML文件轉換爲JSON文件。 我正在使用pyyaml包進行轉換。 在YAML文件中,有一些日期值正在Python中轉換爲Datetime對象。我需要將它們按原樣或字符串轉換。將Python字符串變量中的datetime轉換爲正確的格式
樣品YAML文件:http://pastebin.com/sdcx6sEJ
輸出String:http://pastebin.com/Bvm5cNwH
輸出: { 「元」:{ 「data_version」:0.6, 「創建」:datetime.date( 「修訂」:1}
預計: {「meta」:{ 「data_version」:0.6, 「創造」: 「2013年2月22日」, 「版本」:1}
sourcedir = "D:/YAML/"
targetdir = "D:/JSON/"
for subdir, dirs, files in os.walk(sourcedir):
for file in files:
# print os.path.join(subdir, file)
filepath = subdir + file
if filepath.endswith(".yaml"):
with open(filepath, 'r') as src:
try:
JSONfile = targetdir + file.replace("yaml", "json")
currentfile = open(JSONfile, 'w')
ymldata = yaml.load(src)
# print(ymldata)
ymldata = str(ymldata)
ymldata = ymldata.replace("'", "\"")
# ymldata = ymldata.replace("datetime.date(2005, 6, 13)", "\"2005-06-13\"")
print(ymldata)
json.loads(ymldata)
# jsondata = json.dumps(ymldata)
# jsonSTR = str(jsondata)
# currentfile.write(jsonSTR)
except ValueError as exc:
print(exc)
我沒有日期時間對象,因爲它是嵌入在字符串中。更新問題以包含代碼。 TIA。 –
我更新了我的答案 –
感謝林肯爲您的時間。我檢查了safe_load()並仍然在字符串中獲得相同的datetime對象。 –