我一直在寻找有关此问题的答案,但似乎无法找到答案。也许到了傍晚才找出答案,所以我转向这里的优秀读者。
我从CouchDB记录中提取了以下JSON数据:
"{\"description\":\"fdsafsa\",\"order\":\"1\",\"place\":\"22 Plainsman Rd, Mississauga, ON, Canada\",\"lat\":43.5969175,\"lng\":-79.7248744,\"locationDate\":\"03/24/2010\"},{\"description\":\"sadfdsa\",\"order\":\"2\",\"place\":\"50 Dawnridge Trail, Brampton, ON, Canada\",\"lat\":43.7304774,\"lng\":-79.8055435,\"locationDate\":\"03/26/2010\"},"
此数据存储在Python字典中,该locations字典位于称为“ my_plan” 的字典中键“ ” 下。我想将此数据从CouchDB转换为Python dict,以便可以在Django模板中执行以下操作:
locations
my_plan
{% for location in my_plan.locations %} <tr> <td>{{ location.place }}</td> <td>{{ location.locationDate }}</td> </tr> {% endfor %}
我发现了很多有关将字典转换为JSON的信息,但是没有其他方法可以返回。
您显示的字符串不是JSON编码的对象(相当于Python dict的eqv)-更像是一个数组(等于列表的eqv),没有括号,并且末尾带有多余的逗号。因此(使用simplejson进行版本可移植性-2.6中的标准库json当然也可以!!):
json
>>> import simplejson >>> js = "{\"description\":\"fdsafsa\",\"order\":\"1\",\"place\":\"22 Plainsman Rd, Mississauga, ON, Canada\",\"lat\":43.5969175,\"lng\":-79.7248744,\"locationDate\":\"03/24/2010\"},{\"description\":\"sadfdsa\",\"order\":\"2\",\"place\":\"50 Dawnridge Trail, Brampton, ON, Canada\",\"lat\":43.7304774,\"lng\":-79.8055435,\"locationDate\":\"03/26/2010\"}," >>> simplejson.loads('[%s]' % js[:-1]) [{'description': 'fdsafsa', 'order': '1', 'place': '22 Plainsman Rd, Mississauga, ON, Canada', 'lat': 43.596917500000004, 'lng': -79.724874400000004, 'locationDate': '03/24/2010'}, {'description': 'sadfdsa', 'order': '2', 'place': '50 Dawnridge Trail, Brampton, ON, Canada', 'lat': 43.730477399999998, 'lng': -79.805543499999999, 'locationDate': '03/26/2010'}]
如果您真的想要一个字典,则必须指定如何对待这两个未命名的项,即,您想对它们使用哪些任意键…?