Python 如何将文本文件数据格式化为特定的标准JSON
我有一个文本文件test.txt中的数据,格式如下Python 如何将文本文件数据格式化为特定的标准JSON,python,json,dictionary,Python,Json,Dictionary,我有一个文本文件test.txt中的数据,格式如下 ABCD=123=Durham EFGH=456=Nottingham IJKL=789=Peterborough 我想将其转换为标准的json/字典项列表,如下所示 { "data":[ { "name":"ABCD", "id":"123", "place":"Durham", }, { "name":"EFGH
ABCD=123=Durham
EFGH=456=Nottingham
IJKL=789=Peterborough
我想将其转换为标准的json/字典项列表,如下所示
{
"data":[
{
"name":"ABCD",
"id":"123",
"place":"Durham",
},
{
"name":"EFGH",
"id":"456",
"place":"Nottingham",
},
{
"name":"IJKL",
"id":"789",
"place":"Peterborough",
},
]
}
我怎样才能做到这一点
import json
input='''ABCD=123=Durham
EFGH=456=Nottingham
IJKL=789=Peterborough'''
print(json.dumps({'data': [dict(zip(('name', 'id', 'place'), l.split('='))) for l in input.split('\n')]}))
这将产生:
{"data": [{"name": "ABCD", "id": "123", "place": "Durham"}, {"name": "EFGH", "id": "456", "place": "Nottingham"}, {"name": "IJKL", "id": "789", "place": "Peterborough"}]}
希望能有帮助
import os
import json
row_keys = ["name","id","place"]
data_dict = {"data":[]}
with open("test.txt", "r") as infile:
for line in infile:
row_values = line.split("=")
row_values[2] = row_values[2].replace(os.linesep, '')
row_dict = dict(zip(row_keys, row_values))
data_dict["data"].append(row_dict)
# print (data_dict)
# print (row_dict)
json_output = json.dumps(data_dict, ensure_ascii=False)
print (json_output)
您尝试过什么,它到底有什么问题?您需要包含有关文件布局的更多信息。它总是4个字符,相等,3个数字,相等,一个单词吗?在其他地方是否有机会出现平等符号?如果有,它们是否逃逸了?我试过拉拉链,成功了。我可以创建多级/嵌套字典吗?比如说{data:ABCD:{id:1234,place:Durham},EFGH:{id:456,place:Nottingham}这将执行:printjson.dumps{data':{k:dictzip'id',place',v.split'='表示k,v表示dictl.split'=',1表示input.split'\n'.items}