希望你做得很好,
我有一个数据文件(包含数千个结构化数据模式,如下所示)>>
PARTNER="ABC" ADDRESS1="ABC Country INN" DEPARTMENT="ABC Department" CONTACT_PERSON="HR" TELEPHONE="+91.90.XX XX X XXX" FAX="+01.XX.XX XX XX XX" EMAIL="" PARTNER="DEF" ADDRESS1="DEF Malaysia" DEPARTMENT="" CONTACT_PERSON="" TELEPHONE="(YYY)YYYYY" FAX="(001)YYYYYYYY" EMAIL="" PARTNER="GEH-LOP" ADDRESS1="GEH LOP Street" DEPARTMENT="HR" CONTACT_PERSON="Adam" TELEPHONE="+91.ZZ.ZZ.ZZZZ" FAX="+91.ZZ.ZZ.ZZZ" EMAIL=""
我尝试使用以下代码将数据文件(partner.txt)转换为JSON:
- 创建空字典dict1和dict2
- 逐行读取数据文件
- 如果不是line.isspace(),请使用此命令以确保读取了换行符,并将其写在字典dict1中
- 当换行符(出现空行)时,使用dict2.update(dict1)将dict1的内容附加到dict2。>
import json dict1 = {} dict2 ={} with open("partner.txt", "r") as fh: out_file = open("test1.json", "w") for line in fh: if not line.isspace(): command, description = line.strip().split("=") dict1[command] = description.strip('"') else: dict2.update(dict1) print("space found") json.dump(dict2,out_file,indent=1) out_file.close() print("json file created")
我试图查找很多东西,但找不到方法:-但是此代码仅使用PARTNER的单个块创建一个json(test1.json)
{ "PARTNER": "DEF", "ADDRESS1": "DEF Malaysia", "DEPARTMENT": "", "CONTACT_PERSON": "", "TELEPHONE": "(YYY)YYYYY", "FAX": "(001)YYYYYYYY", "EMAIL": "" }
预期输出
{ "data":[ { "PARTNER": "ABC", "ADDRESS1": "ABC Country INN", "DEPARTMENT": "ABC Department", "CONTACT_PERSON": "HR", "TELEPHONE": "+91.90.XX XX X XXX", "FAX": "+01.XX.XX XX XX XX", "EMAIL": "" }, { "PARTNER": "DEF", "ADDRESS1": "DEF Malaysia", "DEPARTMENT": "", "CONTACT_PERSON": "", "TELEPHONE": "(YYY)YYYYY", "FAX": "(001)YYYYYYYY", "EMAIL": "" }, { "PARTNER": "GEH-LOP", "ADDRESS1": "GEH LOP Street", "DEPARTMENT": "HR", "CONTACT_PERSON": "Adam", "TELEPHONE": "+91.ZZ.ZZ.ZZZZ", "FAX": "+91.ZZ.ZZ.ZZZ", "EMAIL": "" } ] }
[希望您做的很好,我有一个数据文件(包含数千个结构化数据模式),如下所示:PARTNER =“ ABC” ADDRESS1 =“ ABC Country INN” DEPARTMENT =“ ABC Department” CONTACT_PERSON =“ ...
您每次都需要将dict1设置为新的dict:
import json
dict1 = {}
dict2 ={}
with open("partner.txt", "r") as fh:
out_file = open("test1.json", "w")
for line in fh:
if not line.isspace():
command, description = line.strip().split("=")
dict1[command] = description.strip('"')
else:
dict2.update(dict1)
dict1 = {} # set it to new dict
print("space found")
json.dump(dict2,out_file,indent=1)
out_file.close()
print("json file created")
您需要将字典追加到词典列表中,而不要使用update,因为它会覆盖始终相同的键:
有很多方法可以做到这一点。也许我们应该使其可维护