Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
重新格式化json文件(python)_Python_Json - Fatal编程技术网

重新格式化json文件(python)

重新格式化json文件(python),python,json,Python,Json,我有一个json文件,分为3个部分 { "columns": { "0": "Account Number", "1": "Airport", "2": "Terminal", }, "rows": [ [ [ { "v": "1234 " }, { "v": "LHR

我有一个json文件,分为3个部分

{
"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-伦敦希思罗机场”, “航站楼”:“T3” }

如何才能做到这一点呢?

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)
创建新的json

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)
输出

{
    "Account Number": "1234 ",
    "Airport": "LHR - London Heathrow",
    "Terminal": "T3"
}

如果你问如何访问字典/列表中的数据,你应该做更多的研究。否则,您的问题就不清楚了。不,不清楚。可能使用
json.loads
json.dumps
作为解决方案的一部分?到目前为止一切都很好,但您应该动态提取json
列的值,然后在新生成的JSON中使用。它说
JSON^作为字符串语法错误:无效语法
,不幸的是。感谢@BarbarosÖzhan,我将
“JSON as String”
作为占位符,但现在我添加了文本jsoni,这一行有一个错误:columns=data[“columns”]错误是:“字符串索引必须是整数”。。那是怎么回事?