单引号内的列表
List within single quotes
我有一个单引号列表。
'[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]'
我将其作为输入参数接收,我想将其分配给 python 中不包含单引号的变量。
你能帮忙吗?
收到的示例数据接近于以下内容..
'[{"name":"emp_id","value":3232323},{"name":"dd_approval","value":"-paid -fulltime \"05/03/21 19:46\" \"05/04/21 19:46\" xyz@dmuil.com 3232323"}]'
json.loads(this string)
报错如下
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
您拥有的不是 list
,而是表示对象列表的 JSON 字符串,将其加载到 python 将导致 list
dict
import json
a = '[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]'
content = json.loads(a)
print(content) # [{'Name': 'name1', 'value': 'value1'}, {'name': 'name2', 'value': 'value2'}]
您可以使用ast.literal_eval
import ast
x = ast.literal_eval('[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]')
如果我在 x
上执行 type()
,我将看到 <class 'list'>
此外,此列表中的所有内容都会变成其所需的形式。下面的代码证明了这一点。
import ast
x = ast.literal_eval('[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]')
print(x[0])
print(type(x[0]))
输出
{'Name': 'name1', 'value': 'value1'}
<class 'dict'>
我有一个单引号列表。
'[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]'
我将其作为输入参数接收,我想将其分配给 python 中不包含单引号的变量。
你能帮忙吗?
收到的示例数据接近于以下内容..
'[{"name":"emp_id","value":3232323},{"name":"dd_approval","value":"-paid -fulltime \"05/03/21 19:46\" \"05/04/21 19:46\" xyz@dmuil.com 3232323"}]'
json.loads(this string)
报错如下
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
您拥有的不是 list
,而是表示对象列表的 JSON 字符串,将其加载到 python 将导致 list
dict
import json
a = '[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]'
content = json.loads(a)
print(content) # [{'Name': 'name1', 'value': 'value1'}, {'name': 'name2', 'value': 'value2'}]
您可以使用ast.literal_eval
import ast
x = ast.literal_eval('[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]')
如果我在 x
上执行 type()
,我将看到 <class 'list'>
此外,此列表中的所有内容都会变成其所需的形式。下面的代码证明了这一点。
import ast
x = ast.literal_eval('[{"Name":"name1","value":"value1"},{"name":"name2","value":"value2"}]')
print(x[0])
print(type(x[0]))
输出
{'Name': 'name1', 'value': 'value1'}
<class 'dict'>