【问题标题】:Get all values in randomly selected JSON object获取随机选择的 JSON 对象中的所有值
【发布时间】:2021-02-09 17:33:00
【问题描述】:

我正在从 json 调用中检索对象列表。它们是具有“作者”和“文本”值的引号。这是一个小样本。

0:
author: "Thomas Edison"
text: "Genius is one percent inspiration and ninety-nine percent perspiration."
__proto__: Object
1:
author: "Yogi Berra"
text: "You can observe a lot just by watching."
__proto__: Object

然后我从列表中选择一个随机对象。我不知道如何从所选对象中获取这两个值。我可以分别获取文本和作者,但我似乎无法同时获取它们

这些确实有效

data[ Math.floor(Math.random() * data.length) ]['text']
data[ Math.floor(Math.random() * data.length) ]['author']

这些我都试过了

data[ Math.floor(Math.random() * data.length) ]['author','text']
data[ Math.floor(Math.random() * data.length) ]['author'],['text']

提前致谢

【问题讨论】:

    标签: javascript json object random


    【解决方案1】:

    可以先获取对象,再获取文本和作者值:

    var obj = data[ Math.floor(Math.random() * data.length) ];
    
    console.log(obj.text, obj.author);
    

    但是使用这个:

    data[ Math.floor(Math.random() * data.length) ]['text']
    data[ Math.floor(Math.random() * data.length) ]['author']
    

    可能会给你一个错误的(text, author) 对,例如它可能会得到一对("You can observe a lot just by watching.", "Thomas Edison"),这是不正确的,因为获取文本时选择的对象可能与获取作者时选择的对象不同,这是因为调用Math.floor(Math.random() * data.length) 两次可能会给出不同的结果每次通话。

    【讨论】:

      【解决方案2】:

      在您的方法中,您正在为每个作者和引用选择生成随机选择。将您的随机选择存储在另一个变量中,然后从数组中选择该索引。

      import random
      class Quote:
        def __init__(self, author, quote):
          self.author = author
          self.quote = quote
      
      # Get the quotes list from the api call
      quote1=Quote('Thomas Edison','Genius is one percent inspiration and ninety-nine percent perspiration.')
      quote2=Quote('Yogi Berra','You can observe a lot just by watching.')
      quotesList=[quote1,quote2]
      ####
      
      #Using random number generator to get random choce less than max lenght of fetched list
      maxListLen=len(quotesList)-1
      randomChoice=random.randint(0, maxListLen)
      
      print(quotesList[randomChoice].author,' ',quotesList[randomChoice].quote)
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-10
        • 2015-10-12
        • 2015-07-15
        • 1970-01-01
        • 2015-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多