Python对象和JSON

Python对象和JSON,python,json,Python,Json,我有一个python对象,我将其转储到json并写入文件 results = [ {'destination': (x,y), 'id': 'dsss', 'origin': (x,r), 'waypoints': [[s,l],[d,s]]}, {'destination': (x1, y1), 'id': 'ddsdsee', 'origin': (z,f), 'waypoints': [[e,y],[d,e]]}] with gzip.open("test.json.gz",'w') a

我有一个python对象,我将其转储到json并写入文件

results = [
{'destination': (x,y), 'id': 'dsss', 'origin': (x,r), 'waypoints': [[s,l],[d,s]]},
{'destination': (x1, y1), 'id': 'ddsdsee', 'origin': (z,f), 'waypoints': [[e,y],[d,e]]}]

with gzip.open("test.json.gz",'w') as outfile:
    json.dump(results,outfile,indent=2)
然后,我通过以下方式在别处打开该文件:

schedule_f = gzip.open("test.json.gz")
schedule = json.load(schedule_f)
pprint(附表[0])
return:

{'destination': [x,y], 'id': 'dsss', 'origin': [x,r], 'waypoints': [[s,l],[d,s]]

为什么
origin
destination
字段转换为列表?我明确指定了
而不是
[

嵌套的Python对象可以比JSON格式存储的对象更复杂。JSON格式只有一个容器,当您将其导入Python时,它的解析为列表


这种格式转换并不保守,它们会破坏信息。您将无法存储
datetime
,它将被转换为字符串。

嵌套的Python对象可能比您允许以JSON格式存储的对象更复杂。当您将其导入Python时,JSON格式只有一个容器及其解析为列表。


这种格式转换并不保守,它们会破坏信息。您将无法存储
datetime
,它将被转换为字符串。

JSON不支持元组,因此
JSON
模块将它们转换为JSON支持的数组。

JSON不支持元组,因此
JSON
模块e将它们转换为JSON支持的数组。

JSON没有任何元组概念:只有数组,它映射到Python列表


从实用的角度来看,这没有什么区别,但是如果您认为您真的需要元组,那么您必须自己转换它们。

JSON没有元组的任何概念:只有数组,它映射到Python列表

从实用的角度来看,这没有什么区别,但是如果您认为您真的需要元组,那么您必须自己转换它们。

JSON不知道“((在JSON符号中没有指定)

您的
json.dump
智能地将其转换为列表。

json不知道“((在json符号中未指定)


您的
json.dump
智能地将其转换为列表。

请阅读json是什么:


JSON不支持元组数据类型。它只支持列表,这就是Python元组被转换为JSON列表的原因。

请阅读JSON是什么:


JSON不支持元组数据类型。它只支持列表,这就是Python元组被转换为JSON列表的原因。

如果希望转储和加载对象完全相同,则使用
pickle
模块而不是
JSON
模块。

如果希望转储和加载对象完全相同,则使用
pickle
模块
json
模块的。

您的输入是无效的Python,
results
中的第一项缺少结束
}
。您的输入是无效的Python,
results
中的第一项缺少结束
}