添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
def a(): df = pd.DataFrame([[31, 'bob'], [21, 'alex']], index=['row_1', 'row_2'], columns=['age', 'name']) print(df) b(df) print("over") def b(df): data = [] data.append({'class': 'a', 'age': df.at['row_1', 'age']}) data.append({'class': 'a', 'age': df.at['row_1', 'age']}) print(data) data_json = json.dumps(data) print("data to json") if __name__ == '__main__':

在函数b中,从dataframe df中取一个元素的值,和其他数据一起组成dict,两个dict再组成一个list。然后对这个list 进行json.dumps 操作。

期间,我们将df和data打印出来,如下,看起来都没有问题

age name row_1 31 bob row_2 21 alex data: [{'class': 'a', 'age': 31}, {'class': 'a', 'age': 31}]

但是在执行代码的时候就会报错

 raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type int64 is not JSON serializable
data_json = json.dumps(data)

粗看data没有任何问题,list里有两个元素,每个元素一个dict。把data print出来的内容直接copy出来单独执行json.dumps也没有问题。但是一放到程序中执行就有问题了。

后来发现原因在于从dataframe中取元素的时候

df.at['row_1', 'age']

取出来的不是int,而是numpy.int64。 所以会报错TypeError: Object of type int64 is not JSON serializable。

解决办法:

一个最简单的解决办法就是将他转成int,

data.append({'class': 'a', 'age': int(df.at['row_1', 'age'])})

这样就没有问题了:

       age  name
row_1   31   bob
row_2   21  alex
[{'class': 'a', 'age': 31}, {'class': 'a', 'age': 31}]
data to json

其他方法可以查其他资料啦。

代码如下:import pandas as pdimport jsondef a(): df = pd.DataFrame([[31, 'bob'], [21, 'alex']], index=['row_1', 'row_2'], columns=['age', 'name']) print(df) b(df) print("over")def b(df): data = [] data.append({'class': 'a', 'ag
网上查了很多原因,而这个问题是因为使用json.dumps()函数时,dumps是将dict数据转化为str数据,但是dict数据包含byte数据所以会报错 处理方法主要就下面这几种: 1.编写一个类 # -*- coding:utf-8 -*- # !/usr/bin/env python3 # -*- coding: utf-8 -*- import json class MyEncoder(json.JSONEncoder): def default(self, obj): 1、json.dumps: 用于将 Python 对象编码成 JSON 字符串 import json data = [{ 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }] #data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } json = json.dumps...
numbers = [2,3,4,7,11,13] with open(file_name,'w') as f_obj: json.dump(numbers, f_obj)#存入到指定文件第一个参数为要存入的内容,第二个为文件的对象 #json.load()         with open(fil
一、 Json转为DataFrame 当我们在进行数据分析的时候,经常会遇到各种各样格式的文件,今天在这里整理一下对于json格式的文件怎么转化为dataframe的形式的文件。 1.1、对于简单的json形式 所谓的简单的json格式,就是将字典形式的文件,直接输出成dataframe形式的文件。 下面将创建一个test.json文件来进行示范:
首先网上大多数博客没有明确说明问题的来源 这个问题是由于json.dumps()函数引起的。dumps是将dict数据转化为str数据,但是dict数据包含byte数据所以会报错。 解决:编写一个解码类 遇到byte就转为str 1.MyEncoder.py import json class MyEncoder(json.JSONEncoder): def default(self, obj)...
今天用json.dumps写入json文件时出现了,date is not JSON serializable的错误,无法正常序列化date对象,这是我们需要自定义encoding方法来解决一些非JSON认识的对象,我们用date作为例子,通用模板改一下就行了 class DateEnconding(json.JSONEncoder): def default(self, o):
1down voteThis is not supported by default, but you can make it work quite easily! There are several things you'll want to encode if you want the exact same data back:The data itself, which you
在python导入json包可以方便地操作json文件,但是偶尔会遇到 TypeError: Object of type xxx is not JSON serializable 错误,通常报错的位置是很正常的int或float,本文记录该问题解决方法。 自定义序列化方法 class MyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.integer):
一、json.dumps简单介绍 json.dumps的功能是将字典类型转换为json格式的字符串类型,爬虫领域经常用到该函数,要配合请求头’Content-Type’: 'application/json;charset=utf-8’进行使用。 二、简单使用 import json data = {'token':'e5dads5 3455s2','verify':True} data_json = json.dumps(data) print(data_json) #输出:{"token": "e
是的,我知道。`json.dumps()` 是将 Python 对象转换为 JSON 字符串的方法。其,`dumps` 是 `dump string` 的缩写。它接受一个 Python 对象,例如列表、字典等,并将其转换为 JSON 字符串。例如,以下代码将一个 Python 字典转换为 JSON 字符串: ```python import json data = {'name': 'John', 'age': 30, 'city': 'New York'} json_data = json.dumps(data) print(json_data) {"name": "John", "age": 30, "city": "New York"} 在这个例子,`data` 是一个 Python 字典,使用 `json.dumps()` 方法将其转换为 JSON 字符串,并将其赋给 `json_data` 变量。最后,我们将 `json_data` 打印出来,查看转换后的结果。