【问题标题】:Convert numpy.nd array to json [duplicate]将 numpy.nd 数组转换为 json [重复]
【发布时间】:2017-09-06 20:42:18
【问题描述】:

我有一个数据框genre_rail,其中一列包含numpy.ndarray。数据框如下所示

其中的数组如下所示:

['SINGTEL_movie_22906' 'SINGTEL_movie_22943' 'SINGTEL_movie_24404'
 'SINGTEL_movie_22924' 'SINGTEL_movie_22937' 'SINGTEL_movie_22900'
 'SINGTEL_movie_24416' 'SINGTEL_movie_24422']

我尝试了以下代码

import json
json_content = json.dumps({'mydata': [genre_rail.iloc[i]['content_id'] for i in range(len(genre_rail))] })

但是出错了

TypeError: 数组不是 JSON 可序列化的

我需要输出为

{"Rail2_contend_id":
["SINGTEL_movie_22894","SINGTEL_movie_22898",
"SINGTEL_movie_22896","SINGTEL_movie_24609","SINGTEL_movie_2455",
"SINGTEL_movie_24550","SINGTEL_movie_24548","SINGTEL_movie_24546"]}

【问题讨论】:

标签: python arrays json numpy


【解决方案1】:

如何使用.tolist 方法将数组转换为json。 然后你可以把它写成 json 像:

np_array_to_list = np_array.tolist()
json_file = "file.json" 
json.dump(b, codecs.open(json_file, 'w', encoding='utf-8'), sort_keys=True, indent=4)

【讨论】:

  • 我试过你的方法,但程序似乎卡在tolist()
  • @yurenzhong tolist() 对我来说计算时间很长
【解决方案2】:

加载字典中的所有数据,然后将其转储到 json。下面的代码可能会对你有所帮助

import json

#Data
d = ['SINGTEL_movie_22906', 'SINGTEL_movie_22943', 'SINGTEL_movie_24404'
 'SINGTEL_movie_22924', 'SINGTEL_movie_22937', 'SINGTEL_movie_22900'
 'SINGTEL_movie_24416', 'SINGTEL_movie_24422']

#Create dict
dic = {}
dic['Rail2_contend_id'] = d

print dic

#Dump data dict to jason
j = json.dumps(dic)

输出

{'Rail2_contend_id': ['SINGTEL_movie_22906', 'SINGTEL_movie_22943', 'SINGTEL_movie_24404SINGTEL_movie_22924', 'SINGTEL_movie_22937', 'SINGTEL_movie_22900SINGTEL_movie_2441}'p>SINGTEL_4',

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 2014-06-11
    • 2012-02-08
    • 1970-01-01
    • 2019-04-10
    • 2020-02-06
    • 2020-11-26
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多