Python 将JSON输出转换为CSV-删除值中的新行字符
我正在调用一个API,其输出如下: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
{
"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选项。我试着用脱衣舞,但不起作用。你能帮忙吗?当然可以。请修改您的问题并让我检查:请检查我的新答案,如果您同意,请接受我的答案: