首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python将复杂密钥(元组)存储到JSON中

用Python将复杂密钥(元组)存储到JSON中
EN

Stack Overflow用户
提问于 2015-08-17 08:17:21
回答 1查看 1.6K关注 0票数 1

我想用JSON存储一个具有复杂键(tuple)的对象,例如:

代码语言:javascript
复制
obj = {('a', '1', '', 'b') : '1'}

但使用:

代码语言:javascript
复制
import json
json.dumps(obj)

结果出现以下错误:

代码语言:javascript
复制
TypeError: keys must be a string

什么是最快/最好的方法来将它转换成JSON,并在以后解开它?

注意,它必须存储在一个典型的JSON数据库中(例如Cloudant/CouchDB/ElasticSearch)。

此外,我认为在我的程序中使用元组是非常实用的,因此我倾向于以包含元组作为键(在加载JSON之后)的数据集结束。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 08:29:56

我认为有两个解决办法你可以使用。

  1. 将数据存储为元组列表,而不是字典。请注意,在重新创建字典时,您必须将不可理解的列表重新转换为元组。。json.dumps(obj.items()) '[["a","1","b",“1”] >>> {tuple(x):y for x,y in json.loads(_a‘,u'1',u'',u'b'):u'1'}
  2. 将元组转换为字符串,然后在检索值时将这些字符串解析回元组。 导入ast >>> json.dumps({repr(x):y for x,y in obj.items()})‘{“(\’a‘,\ '1',\ 'b'):"1"}’>>> {ast.literal_eval(x):y for x,y in json.loads(_).items()} {‘a’,‘1’,‘b’):u'1'}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32045646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档