我是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对象。 –