使用 pandas 将 JSON 输出为 CSV

2024-03-10

我正在尝试转换以下内容.json文件至.csv使用熊猫。

输入 json 文件名:my_json_file.json

{  
   "profile_set":[  
      {  
         "doc_type":"PROFILE",
         "key":"123",
         "mem_list":{  
            "mem_num":"10001",
            "current_flag":"Y",
            "mem_flag":[  

            ],
            "child_mem_list":{  
               "child_mem_num":[  

               ]
            }
         },
         "first_name":"Robert",
         "middle_name":[  

         ],
         "last_name":"John",
         "created_datetime":"2018-01-06T12:52:09"
      },
      {  
         "doc_type":"PROFILE",
         "key":"456",
         "mem_list":{  
            "mem_num":"10002",
            "current_flag":"Y",
            "mem_flag":"Y",
            "child_mem_list":{  
               "child_mem_num":[  

               ]
            }
         },
         "first_name":"Lily",
         "middle_name":[  

         ],
         "last_name":"Hubert",
         "created_datetime":"2018-01-07T11:32:07"
      }
   ]
}

期望的输出是my_csv_file.csv

doc_type    key mem_num current_flag    mem_flag    child_mem_num   first_name  middle_name last_name   created_datetime
PROFILE     123 1001    Y                       Robert              John        2018-01-06T12:52:09
PROFILE     456 1002    Y       Y               Lily                Hubert      2018-01-07T11:32:07

我正在使用下面的代码,但无法获得正确的输出。有人能帮我得到正确的代码吗?

Code:

import csv
import json
import pandas as pd
from pandas.io.json import json_normalize

def json_csv():

    with open('my_json_file.JSON') as data_file:
        data=json.load(data_file)
    normalized_df = pd.io.json.json_normalize(data)
    normalized_df.to_csv('my_csv_file.csv',index=False)
    return

def main():        

    json_csv() 

main()

尝试这个:

import pandas as pd

def parse_nested_json(json_d):
    result = {}
    for key in json_d.keys():
        if not isinstance(json_d[key], dict):
            result[key] = json_d[key]
        else:
            result.update(parse_nested_json(json_d[key]))
    return result

json_data = pd.read_json("my_json_file.json")
json_list = [j[1][0] for j in json_data.iterrows()]
parsed_list = [parse_nested_json(j) for j in json_list]
result = pd.DataFrame(parsed_list)
result.to_csv("my_csv_file.csv", index=False)

更新(12/3/2018):

我阅读了文档,有一个方便的方法:

from pandas.io.json import json_normalize
df = json_normalize(data["profile_set"])
df.to_csv(...)

更新(11/7/2021):

pandas.io.json.json_normalize已弃用,请使用pandas.json_normalize instead

from pandas import json_normalize
df = json_normalize(data["profile_set"])
df.to_csv(...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas 将 JSON 输出为 CSV 的相关文章

  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • 无法在 Mac OSX 上使用 gtk3 FileChooser?

    我将使用 gtk 3 0 构建的程序从 Linux 迁移到 Mac OS X 10 6 8 而且我编译的程序没有错误 但是 在启动程序并选择打开文件后 终端显示以下消息 GLib GIO CRITICAL Settings schema o
  • 在我的 Mac 上安装 python 包(ffnet、spacepy)时找不到 -lbundle1.o 的库

    我在我的 mac 10 9 上安装了 anaconda python 发行版 我正在尝试安装ffnet http ffnet sourceforge net包和SpacePy http spacepy lanl gov包 但这样做时遇到麻烦
  • vl_dsift 尝试获取每个像素的特征向量

    我正在尝试使用 vl dsift 获取每个像素的 128 1 特征向量 因此我希望得到的矩阵具有大小 128 像素数 然而 当我在尺寸为 192 168 的图像上使用它时 生成的描述符给出尺寸 128 31 185 binsize 为 1
  • Designer 在加载/卸载时由 Visual Studio 添加然后删除

    有人以前见过这个吗 我有一个大型 Visual Studio 项目 不断添加 Subtype Designer Subtype to my vcproj然后在项目的下一次打开和关闭时将其删除 中只定义了一个类StoredImageContr
  • 实体框架设计器中的空白字符串默认值

    是否可以在实体框架的 EDMX 设计器中分配一个空白字符串 即 作为默认值 我发现的唯一技术是使用文本编辑器手动编辑 edmx 文件 我意识到这是一个非常古老的问题 但为了后代的缘故 在 EF4 设计器中 您可以在属性窗口字段中键入一个空格
  • 在 Swift 中创建 JSON 数组

    我的后端需要以下 JSON 正文 number 561310 number 132333 number 561310 当我像这样输入时 它在 Postman 中运行得非常好 如何使用 Swift 创建类似的 JSON 现在我有一个字符串类型
  • 304 If-None-Match有效时未修改

    我正在优化 Express JSON API 以供 iOS 和 Android 应用程序使用 当应用程序在 If None Match 标头中指定 etag 时 似乎无法让 Express 使用正确的 304 标头进行响应 我不需要设置 E
  • 在android中解析简单的json字符串

    我想使用 json 创建一个登录和注册系统 我想首先获取 url 的内容 然后解析 json 字符串 Json 字符串示例 employee mesg username is exsist id 0 name 0 username 0 em
  • 用于换行的 CSS 选择器

    假设我有一些相邻的元素 div class container div 1 div div 2 div div 3 div div 4 div div 5 div div 6 div div 样式如下 container gt div di
  • 我可以在 Cordova 2.5 上多次监听 deviceready 吗?

    我可以为每个 html 页面注册 deviceready 事件吗 我使用 Cordova 2 5 的初始化代码并且工作正常 当我将这些代码复制到新的html文件时 它总是调用index html的initialize 函数 var app
  • 使用 Youtube API v3 从特定频道搜索视频

    在我的项目中 我尝试使用特定频道中的关键字进行搜索查询 在 Youtube API v3 的文档中 他们说要在特定频道中搜索 您需要将channelId放入查询中 但它似乎不起作用 现在 我正在使用 YouTube Direct Lite
  • 将 Java PriorityQueue 更改为最大 PQ [重复]

    这个问题在这里已经有答案了 Java 标准库中的优先级队列实现似乎是一个最小优先级队列 我发现这有点令人困惑 为了将其变成最大的 我创建了一个自定义比较器对象 Comparator
  • Gradle 同步错误:未找到名称为“default”的配置

    我想添加外部库GuillotineMenu Android https github com Yalantis GuillotineMenu Android在我的应用程序中 我按照现有问题的得票最高的答案中给出的步骤进行操作如何将库项目添加
  • 在 WordPress 页面和帖子中插入 PHP 代码

    我想知道visitor使用 PHP 的国家并将其显示在 WordPress 页面上 但是当我将 PHP 代码添加到 WordPress 页面或发布时 它会出现错误 我们如何在 WordPress 页面和帖子上添加 PHP 代码
  • 类型错误:尝试分配给只读属性。在 iOS8 Safari 上的 Angularjs 应用程序中

    我们的移动应用程序收到 TypeError 尝试分配给只读属性 仅在 IOS 8 上 堆栈跟踪没有帮助 并且似乎在 Angular 代码中 发生这种情况可能是因为 Angularjs 代码顶层的 use strict 我的问题是 1 为什么
  • rownum / 获取前 n 行

    select from Schem Customer where cust 20 and cust id gt 890127 and rownum between 1 and 2 order by cust cust id 执行时间约2分1
  • 如何放大 Mapbox Leaflet 中的标记单击事件?

    我想在单击标记时放大该标记 我正在使用 Mapbox 和传单 I tried marker on click function e map setView e lat e lng 12 但这给了我某种错误 类型错误 t 为空 我什至尝试过
  • JOptionPane 显示选项对话框

    我想使用 JOptionPane 创建一个 showOptionDialog 它有两个按钮 公制和英制 如果单击 Metric 则会加载 Metric GUI 相反 如果单击 Imperial 则会加载 Imperial GUI 我该怎么做
  • 从头开始创建 LinkedList 类

    我们的任务是从头开始创建一个 LinkedList 但绝对没有任何读物来指导我们完成这项令人偏头痛的任务 而且网上的所有内容似乎都只是使用 Java 内置的 LinkedList 方法和东西 无论如何 当使用 Java 的默认内容时 链表非
  • 使用 pandas 将 JSON 输出为 CSV

    我正在尝试转换以下内容 json文件至 csv使用熊猫 输入 json 文件名 my json file json profile set doc type PROFILE key 123 mem list mem num 10001 cu