首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用适当的头将json转换为csv python

如何使用适当的头将json转换为csv python
EN

Stack Overflow用户
提问于 2022-11-23 16:06:41
回答 3查看 31关注 0票数 1

试图将Json数据获取到csv,我正在获取值,但是有一个块结果显示为一行,对于python来说是新的,所以任何帮助都是见仁见智的。尝试了下面的代码来做同样的事情。

代码语言:javascript
复制
import pandas as pd

with open(r'C:\Users\anath\hard.json', encoding='utf-8') as inputfile:
    df = pd.read_json(inputfile)

    df.to_csv(r'C:\Users\anath\csvfile.csv', encoding='utf-8', index=True)

源文件中的示例Json,简短的片段

代码语言:javascript
复制
{
  "issues": [
    {
      "issueId": 110052,
      "revision": 84,
      "definitionId": "DNS1012",
      "subject": "urn:h:domain:fitestdea.com",
      "subjectDomain": "fitestdea.com",
      "title": "Nameserver name doesn\u0027t resolve to an IPv6 address",
      "category": "DNS",
      "severity": "low",
      "cause": "urn:h:domain:ns1.gname.net",
      "causeDomain": "ns1.gname.net",
      "open": true,
      "status": "active",
      "auto": true,
      "autoOpen": true,
      "createdOn": "2022-09-01T02:29:09.681451Z",
      "lastUpdated": "2022-11-23T02:26:28.785601Z",
      "lastChecked": "2022-11-23T02:26:28.785601Z",
      "lastConfirmed": "2022-11-23T02:26:28.785601Z",
      "details": "{}"
    },
    {
      "issueId": 77881,
      "revision": 106,
      "definitionId": "DNS2001",
      "subject": "urn:h:domain:origin-mx.stagetest.test.com.test.com",
      "subjectDomain": "origin-mx.stagetest.test.com.test.com",
      "title": "Dangling domain alias (CNAME)",
      "category": "DNS",
      "severity": "high",
      "cause": "urn:h:domain:origin-www.stagetest.test.com.test.com",
      "causeDomain": "origin-www.stagetest.test.com.test.com",
      "open": true,
      "status": "active",
      "auto": true,
      "autoOpen": true,
      "createdOn": "2022-08-10T09:34:36.929071Z",
      "lastUpdated": "2022-11-23T09:33:32.553663Z",
      "lastChecked": "2022-11-23T09:33:32.553663Z",
      "lastConfirmed": "2022-11-23T09:33:32.553663Z",
      "details": "{\"@type\": \"hardenize/com.hardenize.schemas.dns.DanglingProblem\", \"rrType\": \"CNAME\", \"rrDomain\": \"origin-mx.stagetest.test.com.test.com\", \"causeDomain\": \"origin-www.stagetest.test.com.test.com\", \"danglingType\": \"nxdomain\", \"rrEffectiveDomain\": \"origin-mx.stagetest.test.com.test.com\"}"
    }
    }
  ]
}

我得到的输出如下所示,在这里,字段名在标题中,值在列或单元格中,到目前为止,可以在一个单元格中获得整个记录。任何方法,我们都可以得到特定的领域,只有像标题,严重性或问题,不是所有,但只有我需要的feilds。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-23 16:17:09

尝试:

代码语言:javascript
复制
import json
import pandas as pd

with open("your_file.json", "r") as f_in:
    data = json.load(f_in)

df = pd.DataFrame(data["issues"])
print(df[["title", "severity", "issueId"]])

指纹:

代码语言:javascript
复制
                                                title severity  issueId
0  Nameserver name doesn't resolve to an IPv6 address      low   110052
1                       Dangling domain alias (CNAME)     high    77881

要将CSV保存为CSV,您可以这样做:

代码语言:javascript
复制
df[["title", "severity", "issueId"]].to_csv('data.csv', index=False)
票数 1
EN

Stack Overflow用户

发布于 2022-11-23 16:11:25

试试这个..。

df =pd.json_normalize(输入文件)

代替你的线路。

票数 0
EN

Stack Overflow用户

发布于 2022-11-23 17:11:19

安德烈·凯斯利(Andrej Kesely )说:“最后,这对我起了作用,谢谢你的投入。分享也许会对别人有所帮助。

代码语言:javascript
复制
import pandas as pd
import json

with open(r'C:\Users\anath\hard.json', encoding='utf-8') as inputfile:
    data = json.load(inputfile)


df = pd.DataFrame(data["issues"])
print(df[["title", "severity", "issueId"]])
df[["title", "severity", "issueId"]].to_csv('data.csv', index=False)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74549835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档