使用 Python 3 将 JSON 转换为 CSV

2023-12-06

我需要从 Meetup API 获取一些数据,将获取的 JSON 转换为 CSV,所有这些都在 Python 3 中进行。我从未使用过 JSON 或 Python,因此遇到了一些问题。获取数据不是问题,但我似乎无法将 JSON 对象解析为正确的 CSV 文件。我的代码,匿名:

import json
import requests
import csv


def main():
    # initialize variables
    output_file = 'result_meetup.csv'
    api_key = "YOUR_MEETUP_API_KEY"
    params = {'key': api_key}
    url_path = 'http://api.meetup.com/pro/:URLNAME/groups'

    # get data from API, parse to JSON
    data = requests.get(url_path, params=params)
    data_parsed = data.json()
    length_data = len(data_parsed) - 1

    data_to_file = open(output_file, 'w')
    csv_writer = csv.writer(data_to_file)

    for i in range(0, length_data):
        meetup = data_parsed[i]
        csv_writer.writerow([meetup])
    data_to_file.close()


if __name__ == "__main__":
    main()

现在,如您所见,我将其作为列表写入 CSV。这会导致一个非常难看的输出,如下所示(同样,大写中的值是匿名的):

{u'rsvps_per_event': 0.0, u'organizers': [{u'permission': u'organizer', u'name': u'NAME', u'member_id': ID}], u'repeat_rsvpers': 0, u'topics': [{u'lang': u'en_US', u'id': ID, u'urlkey': u'socialnetwork', u'name': u'Social Networking'}, {u'lang': u'en_US', u'id': ID, u'urlkey': u'education', u'name': u'Education'}, {u'lang': u'en_US', u'id': ID, u'urlkey': u'newtech', u'name': u'New Technology'}, {u'lang': u'en_US', u'id': ID, u'urlkey': u'business-referral-networking', u'name': u'Business Referral Networking'}], u'upcoming_events': 0, u'gender_female': 0.3499999940395355, u'pro_join_date': DATE, u'id': ID, u'category': [{u'shortname': u'career-business', u'sort_name': u'Career & Business', u'id': 2, u'name': u'Career & Business'}], u'city': u'CITY', u'member_count': 73, u'lon': LON, u'organizer_photo': {u'thumb_link': u'LINK.JPEG', u'base_url': u'URL', u'id': ID, u'type': u'member', u'photo_link': u'LINK.JPEG', u'highres_link': u'LINK.JPEG'}, u'average_age': 35.555599212646484, u'status': u'Active', u'description': u'DESCRIPTION' u'founded_date': DATE, lat': LAT, u'urlname': u'NAME', u'gender_male': 0.6000000238418579, u'name': u'NAME', u'country': u'Portugal', u'gender_unknown': 0.05000000074505806, u'past_events': 0, u'gender_other': 0.0, u'past_rsvps': 0}

所以基本上,整个 JSON 对象都在一个 CSV 字段中,带有奇怪的“u”,在列表中等等。但是,如果我不将其写为列表,我只会获取 JSON 对象的字段,而没有数据,因此它只是“组织者”、“名称”等,而没有实际名称。 正如我所说,我是一个 python 初学者,还没有找到任何库来帮助我,但我确信它们存在。非常感谢任何帮助,如果它与 Python3 兼容那就太好了。

编辑:我希望它最终看起来像什么: 我在回复中收到多个 Meetup 小组,所有小组都具有如上所示的相同结构。因此,值的描述应仅作为标题列出一次,并在下面列出值(新行和管道表示 csv 工作表的新字段):

RSVPs_per_event | Organizer | ID 
5               | Tom       | 1
20              | Jack      | 2
35              | Anne      | 3

要转换json数据到csv您需要提取键并将它们写入标题中,然后处理值。这可能对您有帮助:

data_parsed = json.loads(Data)

header = data_parsed[0].keys()
csv_writer.writerow(header)

for i in range(0,length_data)
    meetup = data_parsed[i].values()
    csv_writer.writerow([meetup])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 3 将 JSON 转换为 CSV 的相关文章

  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • jQuery AJAX 请求在 IE8 中失败,并显示消息“错误:调用 open 方法之前无法调用此方法。”

    我正在使用 jQuery 1 4 2 并尝试执行一个简单的 AJAX 请求 目标 URL 返回一个 JSON 字符串 我使用 jslint 对其进行了验证 该请求在 Firefox 和 Chrome 中有效 但不想在 IE8 中工作 我无法
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0

随机推荐

  • 应用速率大于 2 倍时,avplayer 播放时出现抖动

    我想调整 Avplayer 速率 我可以在以下帮助下完成 avplayer play avplayer setRate 1 5 还禁用了音轨 低于2 0时运行良好 但当我们应用它超过 2 倍时 就会导致视频不稳定或不稳定 当我用谷歌搜索这一
  • 如何在 OpenEdge SQL 中模拟 SELECT ... LIMIT、OFFSET?

    在大多数 SQL 实现中 能够选择查询中返回的所有行的 滑动窗口 子集是很常见的事情 一个常见的用例是分页 例如 假设我有一个搜索页面 每页有 10 个结果 对于支持的实现LIMIT and OFFSET关键字 用于返回每个页面结果的查询如
  • IE8 不透明度问题

    我尝试解决IE8中出现的问题 Html 非常简单 div div div div div div div div 当我在 IE 中设置 使用 jQuery source 元素的不透明度为 0 时 我可以看到 overlay 的背景 而不是
  • 有没有办法查询未来的SSRS订阅时间表?

    在我的办公室 我们中的许多人都使用 SSRS 来安排定期报告 我想查看接下来几天或一周内即将运行的报表的时间表 以便我们可以了解 20 个报表是否都将尝试同时运行 我怎样才能做到这一点 我创建了显示订阅信息的 t sql 报告 但它们仅显示
  • 从 javascript 中的对象数组中删除重复值[重复]

    这个问题在这里已经有答案了 我有一个像这样的对象数组 arr label Alex value Ninja label Bill value Op label Cill value iopop 该数组是在渲染我的反应组件时组成的 第 i 个
  • 如何在代码中为树视图设置 WPF 数据模板?

    struct Drink public string Name get private set public int Popularity get private set public Drink string name int popul
  • C# - 使用 StreamReader 并行化 While 循环会导致 CPU 过高

    SemaphoreSlim sm new SemaphoreSlim 10 using FileStream fileStream File OpenRead using StreamReader streamReader new Stre
  • java中exec()方法的重定向

    我没有得到正确的答案 我的代码是 String s java classpath MiniRA RegAlloc lt MiniRA 4 miniIR Process pro2 Runtime getRuntime exec s Syste
  • API SurveyQuestionImage.Data 字段的正确格式是什么?

    我正在使用 GCS API 尝试使用图像数据创建调查 我在 Net 平台上使用 NuGet 包 Google Apis ConsumerSurveys v2 版本 1 14 0 564 我可以毫无问题地创建不包含图像数据的调查 但是 当我尝
  • 过滤后无法返回子类对象的Stream

    我有一个方法返回一个Stream类型的A 我也有一个亚型B of A 该方法创建一个Stream它填充了以下实例B 它们也是类型A由于继承 这工作得很好 直到我在上面引入一个过滤器Stream 然后 编译器决定 Stream 的类型B并不是
  • PHP:如何访问函数内部已在函数外部声明的变量?

    在每个页面的开头 我包含一个启动会话等的文件 我们称之为session php 在这个文件中session php 我包含一个包含函数的文件 我们称之为function1 php 因为我需要该功能可用session php 但是 稍后在主页
  • Groovy 中的类转换异常

    我想使用 grails 上的 groovy 上传图像 我的gsp页面如下 我显示的是原始的简化版本
  • XSD 断言无法识别

    我有一个 XSD 我想在其中使用xs assert陈述 问题是我不知道如何使断言功能可供我使用 我正在使用 Visual Studio 编写它 它会出现一条蓝线 表示它不支持断言元素 我的 XSD 看起来像这样
  • 检测移动浏览器

    我正在寻找一个函数 如果用户是否使用移动浏览器 该函数会返回布尔值 我知道我可以使用navigator userAgent并使用正则表达式编写该函数 但用户代理对于不同的平台来说太多样化了 我怀疑匹配所有可能的设备会很容易 而且我认为这个问
  • 多个文件是否存储在一个块中?

    当我将许多小文件存储到 HDFS 中时 它们会存储在单个块中吗 在我看来 根据此讨论 这些小文件应该存储到单个块中 HDFS 块大小与实际文件大小 引用自Hadoop 权威指南 HDFS 存储小文件效率低下 因为每个文件都存储在一个块中 并
  • Expect - 根据行和列从屏幕区域获取变量

    我正在使用 Expect 与 SSH 会话和 ERP 程序自动交互 不是依赖正则表达式来捕获我的预期脚本中的变量 是否可以在收到用户的特定击键后将屏幕区域 例如一个字段 捕获到代码中的变量中 向服务器发送一些其他命令并重新发送该字段 假设订
  • 递归 ConcurrentHashMap.computeIfAbsent() 调用永远不会终止。错误还是“功能”?

    前一段时间 我在博客中介绍了一种递归计算斐波那契数的 Java 8 函数方法 有一个ConcurrentHashMap缓存和新的 有用的computeIfAbsent method import java util Map import j
  • 将数组从控制器传递到视图 - Codeigniter

    我尝试在控制器中打印数组 然后将其传递给视图 这是输出 Array annunci gt Array 0 gt stdClass Object EmailDatore gt email protected Nome gt asdasd Co
  • WebSphere 7 中的 Spring 依赖注入(JSR 330 注释)不起作用

    我有一个使用 Java 6 Spring Framework 3 1 2 和 Mule ESB 3 3 0 以及与此问题无关的其他库构建的企业应用程序 我们的豆子和服务都声明为 Named and InjectJSR 330 注释 分别用于
  • 使用 Python 3 将 JSON 转换为 CSV

    我需要从 Meetup API 获取一些数据 将获取的 JSON 转换为 CSV 所有这些都在 Python 3 中进行 我从未使用过 JSON 或 Python 因此遇到了一些问题 获取数据不是问题 但我似乎无法将 JSON 对象解析为正