将字典转换为字典

时间:2018-01-30 10:54:11

标签: python json dictionary

我的字符串看起来像这样的字典:

{"h":"hello"}

我想按照指示here

将其转换为实际字典
>>> import json
>>> 
>>> s = "{'h':'hello'}"
>>> json.load(s)

然而,我收到了一个错误:

  

Traceback(最近一次调用最后一次):文件“”,第1行,in      文件   “/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py”   第286行,载入中       返回加载(fp.read(),

     

AttributeError:'str'对象没有属性'read'

我的代码有什么问题,以及如何将字符串转换为实际字典?感谢。

4 个答案:

答案 0 :(得分:7)

您想使用loads代替load

json.loads(s)

loadsload作为可输入对象(主要是文件)时输入字符串

json也使用双引号引用'"'

s = '{"a": 1, "b": 2}'

这里有live example

答案 1 :(得分:2)

我更喜欢 // change your code like this $post->tags()->sync($request->tags); $post->categories()->sync($request->categories);

ast.literal_eval

请参阅this explanation,了解为何使用import ast ast.literal_eval('{"h":"hello"}') # {'h': 'hello'} 代替ast.literal_eval

答案 2 :(得分:1)

>>> import ast
>>> s = "{'h':'hello'}"
>>> ast.literal_eval(s)
{'h': 'hello'}

答案 3 :(得分:0)

eval函数允许您运行代码并使用结果。 它通常用于将字符串解释为代码。

string = '{"a": 1, "b": 2}'
dct = eval(string)

有关eval的详情,请参阅the W3school explanatino on eval()

免责声明:如果您要为广泛的用户群构建网站,请告知您{fon Code injection risks of eval before using it.