Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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输出转换为CSV-删除值中的新行字符_Python_Json_Python 3.x - Fatal编程技术网

Python 将JSON输出转换为CSV-删除值中的新行字符

Python 将JSON输出转换为CSV-删除值中的新行字符,python,json,python-3.x,Python,Json,Python 3.x,我正在调用一个API,其输出如下: { "fId": "GL", "totalItems": 1200, "totalHits": 1200, "fields": [ "id", "refNumber", "name", "type", "parentId", "parentName

我正在调用一个API,其输出如下:

    {
        "fId": "GL",
        "totalItems": 1200,
        "totalHits": 1200,
        "fields": [
            "id",
            "refNumber",
            "name",
            "type",
            "parentId",
            "parentName",
            "parentType",
            "description"
        ],
        "items": [
            {
                "ref": "#27:270",
                "id": "20",
                "values": [
                    "20",
                    "FID-20",
                    "TS SYSTEM",
                    "TABLE",
                    "1426",
                    "ALIAS",
                    "SCHEMA",
                    "tEST DESCRIPTION"
                ]
            },
            {
                "ref": "#27:269",
                "id": "507",
                "values": [
                    "507",
                    "FID-507",
                    "FCR Ratio",
                    "TABLE",
                    "1426",
                    "CONGR",
                    "SCHEMA",
                    "Test description",
                ]
            }
     ]
]
字段包含标题值&项包含相应的值

我能够在JSON中展平字段和项键,使用@ErdoğanOnal的输入,但我面临另一个问题,因为项目中的描述有多个换行符,例如tEST\n D\n描述。因此,输出被分成多行。我修改了@ErdoğanOnal的逻辑,如下所示,但对于少数条目,它仍然被分成多行

header = r["fields"]
result = ",".join(header) + "\n"
for item in r["items"]:
    for value in item["values"]:
        if "\n" in value:
          value=value.replace("\n", "")
        else:
          value
        result += value + ","
    result = result.rstrip(",") + "\n"
result = result.strip()
print(result)

有人能帮忙吗?

这里是带换行符的JSON:

json_out = {
  "fId": "GL",
  "totalItems": 1200,
  "totalHits": 1200,
  "fields": [
    "id",
    "refNumber",
    "name",
    "type",
    "parentId",
    "parentName",
    "parentType",
    "description"
  ],
  "items": [
    {
      "ref": "#27:270",
      "id": "20",
      "values": [
        "20",
        "FID-20",
        "TS SYSTEM",
        "TABLE",
        "1426",
        "ALIAS",
        "SCHEMA",
        "tEST DESCRIPTION"
      ]
    },
    {
      "ref": "#27:269",
      "id": "507",
      "values": [
        "507",
        "FID-507",
        "FCR Ratio",
        "TABLE",
        "1426",
        "CONGR",
        "SCHEMA",
        "tEST\n D\nESCRIPTION "
      ]
    }
  ]
}

# Find the header
header = json_out["fields"]
result = ",".join(header) + "\n"
for item in json_out["items"]:
    for value in item["values"]:
        # Get rid of newlines
        result += value.replace("\n", "") + ","
    result = result.rstrip(",") + "\n"
result = result.strip()
print(result)
输出为:

id,refNumber,name,type,parentId,parentName,parentType,description
20,FID-20,TS SYSTEM,TABLE,1426,ALIAS,SCHEMA,tEST DESCRIPTION
507,FID-507,FCR Ratio,TABLE,1426,CONGR,SCHEMA,tEST DESCRIPTION

到目前为止,您尝试了什么?我是python新手,尝试使用Pandas库,但它正在以单行形式写入csv文件。谢谢@ErdoğanOnal。我能够将输出转换为有效的JSON格式并获得输出,但我遇到了另一个问题。由于o/p被拆分为多行,description字段之间有多个换行符,例如Desc\n选项。我试着用脱衣舞,但不起作用。你能帮忙吗?当然可以。请修改您的问题并让我检查:请检查我的新答案,如果您同意,请接受我的答案: