Конвертируйте вложенный JSON в DataFrame для панд

Я не уверен, что вы пытаетесь сделать. Вы можете реализовать цикл do-while следующим образом:

while True:
  stuff()
  if fail_condition:
    break

Или:

stuff()
while not fail_condition:
  stuff()

Что вы пытаетесь использовать цикл while, чтобы распечатать материал в список? Почему бы просто не использовать:

for i in l:
  print i
print "done"

Обновление:

Итак, у вас есть список строк? И вы хотите продолжать перебирать его? Как насчет:

for s in l: 
  while True: 
    stuff() 
    # use a "break" instead of s = i.next()

Кажется ли это чем-то близким к тому, что вы хотите? С вашим примером кода это будет:

for s in some_list:
  while True:
    if state is STATE_CODE:
      if "//" in s:
        tokens.add( TOKEN_COMMENT, s.split( "//" )[1] )
        state = STATE_COMMENT
      else :
        tokens.add( TOKEN_CODE, s )
    if state is STATE_COMMENT:
      if "//" in s:
        tokens.append( TOKEN_COMMENT, s.split( "//" )[1] )
        break # get next s
      else:
        state = STATE_CODE
        # re-evaluate same line
        # continues automatically
1
задан Alexander Thomsen 15 January 2019 в 20:57
поделиться

1 ответ

Чтобы распаковать словарь, используйте json_normalize с аргументом record_path=....

import pandas.io.json as pd_json

data = pd_json.loads(result)
pd_json.json_normalize(data, record_path='data')

         date              marketCap
0  2018-01-12  232547809668.32000000
1  2018-01-13  241311607656.32000000

Если вам нужны и другие значения, передайте аргумент meta=....:

df = pd_json.json_normalize(data, 
                            record_path='data', 
                            meta=['coin', 'dataType', 'baseCurrency'])
df

         date              marketCap     ...        dataType baseCurrency
0  2018-01-12  232547809668.32000000     ...       marketCap          USD
1  2018-01-13  241311607656.32000000     ...       marketCap          USD

 df.columns
# Index(['date', 'marketCap', 'coin', 'dataType', 'baseCurrency'], dtype='object')
0
ответ дан coldspeed 15 January 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: