【发布时间】:2016-02-28 21:30:25
【问题描述】:
我是 Python 编程的新手。 我正在尝试使用 python 将 YAML 文件转换为 JSON 文件。 我正在使用 pyyaml 包进行转换。 在 YAML 文件中,有一些日期值在 Python 中被转换为 Datetime 对象。我需要将它们按原样转换或转换为字符串。
YAML 文件示例: http://pastebin.com/sdcx6sEJ
输出字符串: http://pastebin.com/Bvm5cNwH
输出: {"meta": {"data_version": 0.6, "created": datetime.date(2013, 2, 22), "revision":1}
预期: {"meta": {"data_version": 0.6, "created": "2013-02-22", "revision":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)
【问题讨论】: