如何在Python中将json.loads作为列表而不是字典[重复]
Posted
技术标签:
【中文标题】如何在Python中将json.loads作为列表而不是字典[重复]【英文标题】:How to json.loads as list instead of dictionary in Python [duplicate] 【发布时间】:2013-12-30 11:32:03 【问题描述】:我在使用 python 从文件中读取 json 时遇到问题。数据存储在未排序的字典中。我想以正确的顺序将数据存储在列表变量中。
flookup = open('lookup.json')
self.tags = json.loads(flookup.read())
flookup.close()
self.tags 包含未根据 lookup.json 文件排序的数据
"JournalTitle": "Journal Title",
"PubCode": "Pub Code",
"UniqueDocumentID": "Unique Document ID"
【问题讨论】:
很难理解你在问什么,但这可能会有所帮助:***.com/questions/6921699/… 您可以将 json 作为列表加载,但它必须是列表。在这种情况下,您需要作为 dict 加载并转换为列表。类似于[v for +, v in myjsondict.items()]
【参考方案1】:
import collections, json
data = '"a":1, "b": 2'
print json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode(data)
打印
OrderedDict([(u'a', 1), (u'b', 2)])
(虽然要求这样的东西似乎有点奇怪。如果顺序很重要,JSON数据应该在一个数组中。)
【讨论】:
或者,在那些顺序重要的代码部分中,被访问的键列表是从数组中输入的(因此是有序的)。以上是关于如何在Python中将json.loads作为列表而不是字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章