[英]Python Dict Transform
我一直在嘗試轉換我擁有的數據集時遇到一些奇怪的困難。
我目前有一個來自以下形式的字典:
data['content']['answers']
我想將['answers']附加到列表的第一個元素上,如下所示:
data['content'][0]['answers']
但是,當我嘗試這樣創建它時,我得到了一個空的數據集。
data['content'] = [data['content']['answers']]
我一生無法弄清楚自己在做什么錯。
編輯:這是開頭的JSON
我有:
{
"content" : {
"answers" : {
"3" : {
但我需要這樣:
{
"content" : [
{
"answers" : {
"3" : {
謝謝
您可以使用字典理解功能(Python中最優雅,功能最強大的功能之一)來完成您想做的事情。
在您的情況下,以下方法應該起作用:
d = {k:[v] for k,v in d.items()}
您在問題中提到了JSON。 與其使用自己的解析器(似乎您可能正在嘗試這樣做),不如考慮使用json模塊。
如果我正確理解了這個問題,聽起來您需要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文檔: https : //docs.python.org/2/tutorial/datastructures.html#list-comprehensions
Python 3文檔: https : //docs.python.org/3/tutorial/datastructures.html#list-comprehensions
最好是給我們一個“數據”(字典的樣子),嘗試運行什么代碼,得到什么結果以及除了什么以外的具體示例。 我想我有個主意,但不能確定。
您的問題不清楚,也沒有明確的例子。
順便說一句,這樣的事情可以為您服務嗎?
data_list = list()
for content in data.keys():
data_list.append(data[content])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.