我在尝试转换我拥有的数据集时遇到了一些奇怪的困难。
我目前有一个来自表格的字典如下:
data['content']['answers']
我希望将['answers']附加到列表的第一个元素中,如下所示:
data['content'][0]['answers']
但是,当我尝试创建它时,我得到一个空的数据集。
data['content'] = [data['content']['answers']]
我不能为我的生活弄清楚我做错了什么。
编辑:这是开场JSON
我有:
{
"content" : {
"answers" : {
"3" : {
但我需要它:
{
"content" : [
{
"answers" : {
"3" : {
感谢
答案 0 :(得分:2)
您可以使用字典理解(这是Python中最优雅,最强大的功能之一)来实现您想要的功能。)
在您的情况下,以下内容应该有效:
d = {k:[v] for k,v in d.items()}
您在问题中提到了JSON。而不是滚动你自己的解析器(你似乎可能尝试做),考虑使用json模块。
答案 1 :(得分:2)
如果我已正确理解了这个问题,听起来你需要data['contents']
等于一个列表,其中每个元素都是先前包含在data['contents']
中的字典?
我相信这可行(适用于Python 2.7和3.6):
# assuming that data['content'] is equal to {'answers': {'3':'stuff'}}
data['content'] = [{key:contents} for key,contents in data['content'].items()]
>>> [{'answers': {'3': 'stuff'}}]
列表理解将保留最初位于contents
的每个字典的字典内容,并将字典作为列表返回。
Python 2 doc:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
Python 3 doc: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
答案 2 :(得分:0)
最好是给我们一个'数据'的具体例子(字典看起来是什么样的),你试图运行什么代码,得到什么结果以及你除了什么。我想我有一个想法,但不能确定。
答案 3 :(得分:0)
您的问题不明确,缺乏明确的例子。
是的,这样的事情对你有用吗?data_list = list()
for content in data.keys():
data_list.append(data[content])