Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将文本文件数据格式化为特定的标准JSON_Python_Json_Dictionary - Fatal编程技术网

Python 如何将文本文件数据格式化为特定的标准JSON

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

我有一个文本文件test.txt中的数据,格式如下

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}