首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python redis hget字符串到dict

python redis hget字符串到dict
EN

Stack Overflow用户
提问于 2015-01-06 16:52:49
回答 1查看 1.7K关注 0票数 1

我用hget从redis那里拿到了数据。

代码语言:javascript
运行
复制
data = ss.hget("users", "inmove");

数据类型为字符串。

代码语言:javascript
运行
复制
type(data):
"{u'free_tickets': 2, u'payment_tickets': 1200, u'last': 1420560000, u'user_id': u'inmove'}"

如果我使用json.loads(数据),错误是

代码语言:javascript
运行
复制
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
        return _default_decoder.decode(s)
    File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
        obj, end = self._scanner.iterscan(s, **kw).next()
    File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
        rval, next_pos = action(m, context)
    File "/usr/lib64/python2.6/json/decoder.py", line 171, in JSONObject
        raise ValueError(errmsg("Expecting property name", s, end))
    ValueError: Expecting property name: line 1 column 1 (char 1)
EN

回答 1

Stack Overflow用户

发布于 2015-01-06 16:56:55

使用ast.literal_eval,您的字符串数据不是json,而是python dict的字符串表示。

代码语言:javascript
运行
复制
>>> my_str = "{u'free_tickets': 2, u'payment_tickets': 1200, u'last': 1420560000, u'user_id': u'inmove'}"
>>> from ast import literal_eval
>>> my_dict = literal_eval(my_str)
>>> my_dict.keys()
[u'last', u'user_id', u'free_tickets', u'payment_tickets']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27795108

复制
相关文章

相似问题

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