在python中将字典转换为JSON

r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) file.write(str(r['rating'])) 

我无法在json中访问我的数据。 我究竟做错了什么?

 TypeError: string indices must be integers, not str 

3 Solutions collect form web for “在python中将字典转换为JSON”

json.dumps()将字典转换为str对象,而不是json(dict)对象! 所以你必须通过使用json.loads()方法将你的str加载到字典中来使用它

请参阅json.dumps()作为保存方法,并将json.loads()作为检索方法。

这是代码示例,可以帮助您更好地理解它:

 import json r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) loaded_r = json.loads(r) loaded_r['rating'] #Output 3.5 type(r) #Output str type(loaded_r) #Output dict 

json.dumps()返回python字典的JSONstring表示forms。 看文档

你不能做r['rating']因为r是一个string,而不是字典了

也许你的意思是类似的

 r = {'is_claimed': 'True', 'rating': 3.5} json = json.dumps(r) # note i gave it a different name file.write(str(r['rating'])) 

不需要使用json.dumps()来转换string

 >>> f = open("t.txt",'w') >>> r = {'is_claimed': 'True', 'rating': 3.5} >>> f.write(r['is_claimed']) >>> f.write(r['rating']) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: expected a character buffer object 

必须是文件中写入string,但评价值是浮动的,所以先转换为string,然后尝试它。 它希望有效。

  • 使用多处理队列,池和锁的死简单的例子
  • 我如何有select地逃避Pythonstring中的百分比(%)?
  • pydot和graphviz错误:无法导入dot_parser,将无法加载点文件
  • 运营商的非常奇怪的行为是与方法
  • 在Python中将列表转换为元组
  • Python中的recursion基础
  • 对Python 2.7的支持结束?
  • 如何使用脚本将stdoutredirect到文件和控制台?
  • pythonstring编码/解码
  • 升级OSX El Capitan上的setuptools
  • 我怎样才能读取整数input?