Python字典转换为json或yaml

时间:2016-08-30 02:51:35

标签: python json dictionary

我已经解析了一个字符串并转换成字典。但是我希望能够从我的字典中获取更多信息,而我正在考虑创建一个子文件或yaml文件会更有用。 请随意评论另一种解决此问题的方法。

import re
regex = '(\w+) \[(.*?)\] "(.*?)" (\d+) "(.*?)" "(.*?)"'
sample2= 'this [condo] "number is" 28 "owned by" "james"'
patern = '(?P<host>\S+)\s(?P<tipe>\[\w+\])\s(?P<txt>"(.*?))\s(?P<number>\d+)\s(?P<txt1>"\w+\s\w+")\s(?P<owner>"\w+)'
m =re.match(patern, sample2)
res = m.groupdict()
print res

我会得到:

{'tipe': '[condo]', 'number': '28', 'host': 'this', 'owner': '"james', 'txt': '"number is"', 'txt1': '"owned by"'}

我希望能够按所有者名称排序,并写出房屋类型和门牌号码。例如:

詹姆斯:{type:condo,number:28}

或任何其他建议?

1 个答案:

答案 0 :(得分:0)

json vs yaml的问题归结为你正在使用你正在保存的数据做什么?如果您在JS或其他python脚本中重用数据,那么您可以使用JSON。如果您在使用YAML的东西中使用它,那么使用YAML。但就你的问题而言,除非你的数据有特定的最终游戏或用例,否则格式无关紧要,你甚至可以只做一个典型的TSV / CSV,它就是一样的。

回答你关于如何将字典输入json的问题。

从您的示例中获得res词典。

import json
with open('someFile.json', 'wb') as outfile:
     json.dump(res, outfile)

您的输出文件someFile.json将是您的词典res