【问题标题】:DataFrame with JSON column: Export to JSON带有 JSON 列的 DataFrame:导出到 JSON
【发布时间】:2019-11-14 13:40:42
【问题描述】:

我有一个带有 JSON 格式列的 Pandas 数据框,在将整个 DF 导出为 JSON 时,JSON 列将像普通字符串一样格式化:

foo = pd.DataFrame({'a' : [1,2,3,4], 'b': ['a','b', 'c','d']})

foo['json'] = foo.apply(lambda x: x[['b']].to_json(), axis=1)

OUTPUT:
   a  b       json
0  1  a  {"b":"a"}
1  2  b  {"b":"b"}
2  3  c  {"b":"c"}
3  4  d  {"b":"d"}
foo.to_json()

OUTPUT:

{"a":{"0":1,"1":2,"2":3,"3":4},"b":{"0":"a","1":"b","2":"c","3":"d"},"json":{"0":"{\"b\":\"a\"}","1":"{\"b\":\"b\"}","2":"{\"b\":\"c\"}","3":"{\"b\":\"d\"}"}}

如何在没有正斜杠的情况下导出它?

【问题讨论】:

  • 你为什么关心斜线?他们只是逃避引号。你打算如何处理to_json 的输出?它们很可能不会引起任何问题
  • 输出将被导出到 MongoDB,我担心这不是一个干净的 json 输出:((感谢您的快速回答!)

标签: python json pandas to-json


【解决方案1】:

最简单的解决方案是应用to_dict(),这是最原生的 pandas 方法,尽管我不确定它是否是最高效的方法。

foo.to_json()


OUTPUT:

'{"a":{"0":1,"1":2,"2":3,"3":4},"b":{"0":"a","1":"b","2":"c","3":"d"},"json":{"0":{"b":"a"},"1":{"b":"b"},"2":{"b":"c"},"3":{"b":"d"}}}'

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2021-05-20
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多