pandas to_json() 多余的反斜杠

2024-04-27

我有一个包含电影数据的“.csv”文件,我正在尝试将其重新格式化为 JSON 文件以在 MongoDB 中使用它。所以我将该 csv 文件加载到 pandas DataFrame 中,然后使用 to_json 方法将其写回。 DataFrame 中的一行如下所示:

In [43]: result.iloc[0]
Out[43]: 
title                                                      Avatar
release_date                                                 2009
cast            [{"cast_id": 242, "character": "Jake Sully", "...
crew            [{"credit_id": "52fe48009251416c750aca23", "de...
Name: 0, dtype: object

但是当 pandas 写回来时,它就变成了这样:

{   "title":"Avatar",
    "release_date":"2009",
    "cast":"[{\"cast_id\": 242, \"character\": \"Jake Sully\", \"credit_id\": \"5602a8a7c3a3685532001c9a\", \"gender\": 2,...]",
    "crew":"[{\"credit_id\": \"52fe48009251416c750aca23\", \"department\": \"Editing\", \"gender\": 0, \"id\": 1721,...]"
}

正如您所看到的,“cast”和“crew”是列表,它们有大量多余的反斜杠。这些反斜杠出现在 MongoDB 集合中,导致无法从这两个字段中提取数据。

除了更换之外如何解决这个问题\" with "?

P.S.1:这就是我将 DataFrame 保存为 JSON 的方法:

result.to_json('result.json', orient='records', lines=True)

更新1: 显然 pandas 做得很好,问题是由原始 csv 文件引起的。 它们是这样的:

movie_id,title,cast,crew
19995,Avatar,"[{""cast_id"": 242, ""character"": ""Jake Sully"", ""credit_id"": ""5602a8a7c3a3685532001c9a"", ""gender"": 2, ""id"": 65731, ""name"": ""Sam Worthington"", ""order"": 0}, {""cast_id"": 3, ""character"": ""Neytiri"", ""credit_id"": ""52fe48009251416c750ac9cb"", ""gender"": 1, ""id"": 8691, ""name"": ""Zoe Saldana"", ""order"": 1}, {""cast_id"": 25, ""character"": ""Dr. Grace Augustine"", ""credit_id"": ""52fe48009251416c750aca39"", ""gender"": 1, ""id"": 10205, ""name"": ""Sigourney Weaver"", ""order"": 2}, {""cast_id"": 4, ""character"": ""Col. Quaritch"", ""credit_id"": ""52fe48009251416c750ac9cf"", ""gender"": 2, ""id"": 32747, ""name"": ""Stephen Lang"", ""order"": 3},...]"

我尝试更换"" with "(我真的想避免这种黑客行为):

sed -i 's/\"\"/\"/g'

当然,当再次将其读取为 csv 时,它会导致某些数据行出现问题:

ParserError: Error tokenizing data. C error: Expected 1501 fields in line 4, saw 1513

所以我们可以得出结论,这种盲目更换是不安全的。任何想法?

P.S.2:我使用的是kaggle的5000部电影数据集:https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset


我遇到了同样的问题:解决方案分三步

1-来自 csv 的数据框,或者在我的例子中来自 xlsx:

 excel_df= pd.read_excel(dataset ,sheet_name=my_sheet_name)

2-转换为json(如果您的数据中有日期)

json_str = excel_df.to_json(orient='records' ,date_format='iso')

3-最重要的事情:json.loads **** 就是它了!

parsed = json.loads(json_str)

4-(可选)您可以编写或发送 json 文件: 例如:本地写入

with open(out, 'w') as json_file:
    json_file.write(json.dumps({"data": parsed}, indent=4 ))

更多信息 :https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html

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

pandas to_json() 多余的反斜杠 的相关文章

随机推荐

  • XML布局在android studio中不换行

    在我更新 android studio 后 布局编辑器中的 XML 格式被破坏了 最初 每个属性都位于单独的行上 然而现在有两个或三个属性占据一条线 我进入 设置 gt 编辑器 gt 代码样式 gt XML 在 布局文件 区域下 将 换行属
  • 旋转 UISplitViewController 后模态消失

    我有一个奇怪的问题 UISplitViewController 我的主视图控制器中有一个按钮 点击时会打开一个模式视图 使用简单的故事板转场 但是 当我旋转 iPad 时 模式视图会消失 但仅限于从纵向旋转到横向时 我的主视图控制器以纵向隐
  • Intellij Idea 中 Dockerfile 部署失败(未连接到 docker)

    我是 Docker 新手 只是想按照此中的说明进行操作 我创建了非常简单的 Dockerfile 但部署失败 问题是没有太多信息 Docker 已启动并正在运行 我可以从 IDE 连接到它 码头工人信息 如果您最近更改了 Docker De
  • DbContext.Entry 附加实体

    从我的研究中 我了解到调用 DbContext Entry someEntity 会自动将实体附加到上下文 然而 当我这样做时 我发现实体的状态是分离的 任何人都可以阐明这一点以及 DbContext Entry 的工作原理吗 我正在使用
  • 如何纠正 Rails 控制台命令的错误?

    当我位于 Rails 应用程序的根目录中时 我可以成功执行rails server 但是当我尝试做时rails console or rails c我收到以下错误 myrailsapp master rails c Users myuser
  • 如何从 ActionBar 中删除顶部边框阴影

    我正在开发一个新的 Android 应用程序 由于某种原因 这个新应用程序 我自己没有添加额外的代码 在操作栏上有一个顶部边框阴影 好像是我使用 Android Studio 创建新项目时默认添加的 我怎样才能有一个只有底部阴影的普通操作栏
  • 使用 Javascript(或任何客户端)绘制方程

    有没有可以用来绘制数学方程的库 最好使用 javascript 我也可以使用 Java 或者任何客户端 你看过 弗洛特 吗 http code google com p flot http code google com p flot
  • 如何在 Bluez/Linux 上从 GATT 服务器获取断开连接事件

    环境 Bluez 5 14 Linux 3 1 USB 可插拔 BLE 无线电 TI BLE 密钥卡 CC2541 开发套件 Linux 设备 USB BLE 无线电 我们使用 gatttool 启用 TI 密钥卡上的按键事件并开始监听事件
  • 如何在应用样式器功能后删除列

    应用样式器后如何删除列 这是我的样式函数 def highlight late x c1 background color red condition m x price 1 lt x price main x m2 x price 2 l
  • Android 错误:二进制 XML 文件第 16 行:添加地图片段时膨胀类片段时出错

    我正在尝试使用地图 api v2 显示地图 这是我的 xml 代码
  • d3 转换改变了哪些属性?

    我试图了解 d3 中到底发生了什么转换 例如 var bars svg selectAll null data my values enter append rect statement before transition attr x 1
  • 什么是 lub(null, Double)?

    表15 25 B http docs oracle com javase specs jls se8 html jls 15 html jls 15 25在 JLS 版本 8 中表示条件表达式的类型 true null 0 0 is lub
  • 由于 poms 中的版本发生更改,合并来自 Maven 发布分支的更改会产生冲突

    按照标准实践 我有一个用于功能开发的 svn 主干 以及一个用于构建版本的分叉分支 该分支是使用 maven 发布插件创建的 该插件也用于创建发布 碰巧的是 偶尔的错误将在分支上修复 并且这些更改需要合并回主干 为了不错过任何更改 我希望能
  • SwiftUI 列表内存问题,图像未从 RAM 中释放导致崩溃

    我正在将图像加载到 SwiftUI 列表中 当向下滚动太多图像时 RAM 会飙升并导致应用程序崩溃 为什么当用户向下滚动经过图像时图像不会被释放 我正在加载图像 如下所示 List allProducts id self product i
  • Django 外键多对一关系显示在模板上

    我正在尝试显示与公司 多对一 相关的工作机会 但我无法做到这一点 我已经尝试了很多循环 但我什至没有得到查询集 所以我一定做错了 但无法解决我做错的事情 My files 模型 py class Company models Model f
  • 将 div 的内容放在一起以便在 IE8 中打印

    给定以下 HTML 文档 我需要将 表标题 行保留在与 table 在 IE8 中打印时 尽管page break inside avoid 标题和表格之间仍然有一个分页符 我对此的理解表明应该避免分页并且整个div推至第 2 页 文档类型
  • 将选定的下拉列表值从视图传递到控制器

    我想从我的视图将参数 字符串 传递到我的控制器 该值应该是从视图的下拉列表中选择的值 单击按钮后会调用该方法 但在控制器中 该参数始终为空 在视图中 using Html BeginForm Send Overview FormMethod
  • iOS客户端的Youtube API如何获取Client Secret?

    我正在开发 iOS 应用程序 其中包含在 Youtube 上上传视频的功能 我遵循了一个示例项目yt direct lite ios https github com youtube yt direct lite iOS 该项目需要客户编号
  • rdf:seeAlso 和 rdfs:seeAlso 之间的区别

    有什么区别rdf seeAlso and rdfs seeAlso 当我可以使用时rdf seeAlso当我可以使用时rdfs seeAlso 你能举出一些例子吗 首先 请注意rdf and rdfs分别是常用于引用 RDF 语法和 RDF
  • pandas to_json() 多余的反斜杠

    我有一个包含电影数据的 csv 文件 我正在尝试将其重新格式化为 JSON 文件以在 MongoDB 中使用它 所以我将该 csv 文件加载到 pandas DataFrame 中 然后使用 to json 方法将其写回 DataFrame