Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:。。。通过Python向对象添加新值时不是JSON可序列化错误_Python_Json_Serialization - Fatal编程技术网

类型错误:。。。通过Python向对象添加新值时不是JSON可序列化错误

类型错误:。。。通过Python向对象添加新值时不是JSON可序列化错误,python,json,serialization,Python,Json,Serialization,我有这样一个json对象: { "people":[ {"firstName":"Hasan Sait", "lastName":"Arslan", "email":"hasan.sait.arslan@gmail.com"}] } 我想通过python向这个json对象添加新值,如下所示: import json with open('data.json', 'r+') as json_file: json_data = json.load(jso

我有这样一个json对象:

{
     "people":[
        {"firstName":"Hasan Sait", "lastName":"Arslan", "email":"hasan.sait.arslan@gmail.com"}]
}
我想通过python向这个json对象添加新值,如下所示:

import json

with open('data.json', 'r+') as json_file:
        json_data = json.load(json_file)
        people = json_data['people']
        people.append({"firstName":"Mehmet"})
        json_file.seek(0, 0)
        json.dump(json_file, json_data)
        json_file.truncate()
我得到以下错误:
TypeError:JSON不可序列化

在stackoverflow中,有一些类似于我之前提出的问题,但我无法从中找到任何有益的解决方案


你能告诉我哪里错了吗?

json.dumps不会写入流,它只是获取对象并返回json序列化字符串。然后可以将其保存到文件中

import json

with open('data.json', 'r+') as json_file:
      json_data = json.load(json_file)
      people = json_data['people']
      people.append({"firstName":"Mehmet"})
      json_file.seek(0, 0)
      jsonString = json.dumps(json_data)
      json_file.write(jsonString)
      json_file.truncate()

您刚刚将json_文件和json_数据的顺序搞错了,因此它告诉您不能将filepointer用作json。使用json.dump时,对象是第一个,文件指针是第二个。

您的
json
无效<代码>“电子邮件”:“hasan.sait。arslan@gmail.com“]}此部分应为
“电子邮件”:“hasan.sait”。arslan@gmail.com“}]
谢谢。问题不是这样。这只是我写问题时犯的一个打字错误。