重新格式化json文件(python)

时间:2020-09-17 10:26:21

标签: python json

我有一个分为3个部分的json文件。

{
"columns": {
"0": "Account Number",
"1": "Airport",
"2": "Terminal",
},
"rows": [
[
[
{
"v": "1234 "
},
{
"v": "LHR - London Heathrow"
},
{
"v": "T3"
}
]
]
]
,"types": [
    {
        "0": "TEXT",
        "1": "TEXT",
        "2": "TEXT"
}
]
}

我希望它是这样的:

{ “帐号”:“ 1234”, “机场”:“ LHR-伦敦希思罗机场”, “ Terminal”:“ T3” }

请问如何实现?

1 个答案:

答案 0 :(得分:4)

依赖项

  Utilisateur.findOne({ _id: mongoose.Types.ObjectId(auteur._id) }, function (err, sal) {
                          if (err) return handleError(err);
                          else {


                            sal.relations.lien_vers.push({
                              metadonnees: { nom_societe: societePersonalId },
                              identite: auteur._id.toString(),
                              canons: [""]
                            });

                            console.log("before saving", sal.relations.lien_vers)
                            sal.markModified('relations');
                            sal.save(function (err) {
                              if (err) {
                                console.log(err)
                              }
                              console.log("doc saved")
                            });




                          }

                        });

                      }

将Json作为文件读取

import json
import ast

将Json读取为字符串

with open("file.json") as f:
    data = ast.literal_eval(f.read())

创建新的json

askersString = """{
"columns": {
"0": "Account Number",
"1": "Airport",
"2": "Terminal",
},
"rows": [
[
[
{
"v": "1234 "
},
{
"v": "LHR - London Heathrow"
},
{
"v": "T3"
}
]
]
]
,"types": [
    {
        "0": "TEXT",
        "1": "TEXT",
        "2": "TEXT"
}
]
}"""

data = ast.literal_eval(askersString)

输出

columns = data["columns"]
a = data["rows"][0][0]
newJson = {}

for k, v in columns.items():
    newJson[v] = a[int(k)]['v']

updatedJson = json.dumps(newJson, indent=4)
print(updatedJson)
相关问题