【问题标题】:Change String format [a, b, c] to interable list in python将字符串格式 [a, b, c] 更改为 python 中的可交互列表
【发布时间】:2017-05-14 22:48:33
【问题描述】:

我收到了一个带有“代码”和“列表”的 JSON。我想迭代列表中的所有名称。但是这个列表是字符串,我尝试使用 split() 但在这种情况下它不起作用。

jsonreceiced = request.get_json()
json_list = jsonreceiced['list']
#this returns [aaa, bbb, ccc]
#but is is still as a String

JSON:

{        'code': 'CODE',
         'list': '[aaa, bbb, ccc]'
}

我想做这样的事情:

for i in json_list:
     print i
     #Here I send SELECT to my data base

我在 AndroidStudio 中这样创建 JSON:

JSONObject jo = new JSONObject();        
    jo.put("code", etCode.getText().toString().trim());
    jo.put("list", userArrayList);
    #UserArrayList is my list of logins

【问题讨论】:

  • 使用ast.literal_evalast.literal_eval('[1, 2, 3]')返回[1, 2, 3]
  • @PatrickHaugh:不适用于aaa 或其他字母序列..
  • 很可能是您对数据进行了过多的混淆。你是说你总是有字母序列的列表吗?这不是很有用,也没有给我们太多的工作。你能给我们一个更真实的样本吗?它不必是真实的,只是代表
  • 也许不相关,但这个 JSON 是如何创建的(为什么它不提供字符串数组而是将其转换为单个字符串)?
  • @PatrickHaugh 它返回 ValueError: malformed string

标签: python json python-2.7 list type-conversion


【解决方案1】:

您可以像这样使用list comprehensionsplit()

>>> s = '[aaa, bbb, ccc]'
>>> [item.strip() for item in s[1:-1].split(',')]
['aaa', 'bbb', 'ccc']

strip() 用于删除每个项目的尾随空格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多