JSON->Python 中的字符串

发布于 2024-10-31 08:24:55 字数 244 浏览 0 评论 0原文

假设我得到这行 JSON

[{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]

如何将这些单独的值转换为字符串?所以我可以说它

Print Status

会返回

active

Say I get this line of JSON

[{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]

How can I convert those separate values to strings? So I can say

Print Status

And it returns

active

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

玉环 2024-11-07 08:24:55

这不是从外部源接收到的“JSON 行”。它看起来像 json.loads(external_JSON_string) 的结果。另外,打印状态也不起作用;您的意思是打印状态

>>> result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
>>> print result[0]['status']
active

这就是“JSON 行”的样子:

>>> import json
>>> json.dumps(result)
'[{"status": "active", "due_date": null, "group": "later", "task_id": 73286}]'
>>>

编辑:如果使用 Python 2.5,请使用 import simplejson as json 而不是 import json。通过执行以下操作,使您的代码更加面向未来:

try:
    import json
except ImportError:
    import simplejson as json

That is NOT a "line of JSON" as received from an external source. It looks like the result of json.loads(external_JSON_string). Also Print Status won't work; you mean print status.

>>> result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
>>> print result[0]['status']
active

This is what a "line of JSON" looks like:

>>> import json
>>> json.dumps(result)
'[{"status": "active", "due_date": null, "group": "later", "task_id": 73286}]'
>>>

EDIT: If using Python 2.5, use import simplejson as json instead of import json. Make your code a bit more future-proof by doing this:

try:
    import json
except ImportError:
    import simplejson as json
旧人 2024-11-07 08:24:55

首先,正如已经指出的那样,这不是 JSON - 它已经是 python 了。

我认为你希望字典的键自动转换为局部变量。这将是一个非常糟糕的主意,尽管从理论上讲,使用locals()是可能的:

result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
for k, v in result[0].items():
    locals() [k] = v
print status # prints active

一些问题:

  • 你的键可能会覆盖一些现有的局部变量
  • 键可能是unicode,如何你会访问变量名吗?

另外,正如 python 文档 中所述,不应修改 locals ()。

简而言之:这样做:

print result[0]['status']

First of all, that ain't JSON as was already pointed out - it's python already.

I think you want the keys of the dict automatically transform into local variables. This would be a really bad idea, although in theory, it's possible using locals ():

result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
for k, v in result[0].items():
    locals() [k] = v
print status # prints active

Some problems:

  • Your keys might overwrite some existing local variables
  • Keys might be unicode, how would you access the variable names?

Also, as stated in the python docs, locals () should not be modified.

In short: do it like this:

print result[0]['status']
蝶舞 2024-11-07 08:24:55
import simplejson
_dict = simplejson.loads(json_data)
for entry in _dict:
# loop over list
    print entry.get('status','Failure')
    # Find key in dict/entry
import simplejson
_dict = simplejson.loads(json_data)
for entry in _dict:
# loop over list
    print entry.get('status','Failure')
    # Find key in dict/entry
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文