python - 无法找到从 txt 文件在 python 2.7 中构建 json 的逻辑
问题描述
我的 txt 文件包含带有来源和来源的航空公司。例如,如果联合航空公司与每个来源和来源相关联,那么我可以自己构建 JSON。但这里的问题是联合航空公司和阿联酋航空公司被定义一次,然后它有多个来源和来源。
United Airline
Source : UK
Origin : IN
Source : DN
Origin : VN
Emirates
Source : DU
Origin : KO
Source : KL
Origin : NP
Source : ZO
Origin : PL
我想构建一个JSON,如下所示
{
"Supplier":"United Airlines",
"Source" : "UK",
"Origin" : "IN",
},
{
"Supplier":"United Airlines",
"Source" : "DN",
"Origin" : "VN",
},
{
"Supplier":"Emirates",
"Source" : "DU",
"Origin" : "KO",
},
{
"Supplier":"Emirates",
"Source" : "KL",
"Origin" : "NP",
},
{
"Supplier":"Emirates",
"Source" : "ZO",
"Origin" : "PL",
},
解决方案
import json
from collections import OrderedDict
with open("airline.txt","r") as fin:
supplier = origin = source = "" # init empty
final_result = []
for line in fin:
line = line.strip()
if not line:
continue
if ":" not in line: # it is the supplier
supplier = line
elif "Source" in line:
source = line.split(": ")[-1]
elif "Origin" in line:
origin = line.split(": ")[-1]
else:
print("Not recognized line {}".format(line))
if all([supplier, origin, source]):
final_result.append(OrderedDict({"Supplier":supplier,"Source":source, "Origin":origin}))
source = origin = ""
with open("json_output.json","a+") as fout:
json.dump(final_result,fout)
输出:
{"Supplier": "United Airline",
"Source": "UK",
"Origin": "IN"},
{"Supplier": "United Airline",
"Source": "DN",
"Origin": "VN"},
{"Supplier": "Emirates",
"Source": "DU",
"Origin": "KO"},
{"Supplier": "Emirates",
"Source": "KL",
"Origin": "NP"},
{"Supplier": "Emirates",
"Source": "ZO",
"Origin": "PL"}
推荐阅读
- c++ - 对象创建错误的 C++ 向量
- cordova - 任务 ':app:processDebugGoogleServices' 执行失败,寻找 google-services.json 并没有成功找到它
- mysql - 如何将查询产生的表连接到存储在 mysql 上的过程的另一个临时表中?
- android - 设置中的Android“语音输入”选项丢失
- javascript - 基于嵌套属性过滤数组
- php - 我的 php 文件中的错误我似乎找不到?也许是由ajax引起的?
- python - Pandas:在检查另一列的成员资格时创建 NaN?
- c - C 冒泡排序最大的值变成0
- javascript - 减少 setState 中的计数器
- sql - 使用 SQL 创建 ID X-ref 表