Python 如何将字符串拆分为变量

Python 如何将字符串拆分为变量,python,Python,我有这种类型的字符串 data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}] 我希望这是两组变量 obs |值|脚注ID ---+------

我有这种类型的字符串

data = [{'value': 'Common Stock', 'footnoteid': ''},
        {'value': 'Bond', 'footnoteid': 'F2, F3'},
        {'value': 'Common Stock', 'footnoteid': ''},
        {'value': 'Option', 'footnoteid': 'F4'}]
我希望这是两组变量

obs |值|脚注ID ---+-------+------ 1 |普通股| 2 |键| F2,F3 3 |普通股| 4 |选项| F4 我试过的代码是这样的

value=data.get['value']
list_value=reverse.value

footnote=data.get['footnote']
list_footnote=reverse.footnote
我看不到来自代码的正确结果。

使用字典理解试试这个

输出:

新编辑后:

您可以使用pandas,如下所示,以获得新的预期输出:

>>> import pandas as pd
>>> df = pd.DataFrame(data)
输出:


这是一个字典列表,所以请使用

data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}]

print( data[0].get('value'), data[0].get('footnoteid') )
print( data[1].get('value'), data[1].get('footnoteid') )
或用于循环

要获取数字,可以添加枚举

顺便说一句:您还可以直接将其与pandas一起使用,以创建有用的数据帧

import pandas as pd

data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}]

df = pd.DataFrame(data)

print(df)
数据帧

   footnoteid         value
0             Common Stock
1     F2, F3          Bond
2             Common Stock
3         F4        Option
将zip与列表一起使用:

list_value, list_footnote = zip(*[[x['value'], x['footnoteid']] for x in data])
例如:


它是一个包含字典的列表,因此您需要数据[0]。获取“值”数据[0]。获取“脚注ID”,数据[1]。获取“值”数据[1]。获取“脚注ID”,等等或用于循环。不清楚您在问什么。两组变量意味着什么?您希望输出数据采用什么形式?您是希望将数据对象转换为另一个Python数据结构,还是只是希望打印一份报告?在你展示的代码中,什么是相反的?
data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}]

for item in data:
    print(item.get('value'), item.get('footnoteid'))
for number, item in enumerate(data, 1):
    print(number, item.get('value'), item.get('footnoteid'))
import pandas as pd

data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}]

df = pd.DataFrame(data)

print(df)
   footnoteid         value
0             Common Stock
1     F2, F3          Bond
2             Common Stock
3         F4        Option
list_value, list_footnote = zip(*[[x['value'], x['footnoteid']] for x in data])
data = [{'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Bond', 'footnoteid': 'F2, F3'}, {'value': 'Common Stock', 'footnoteid': ''}, {'value': 'Option', 'footnoteid': 'F4'}]

list_value, list_footnote = zip(*[[x['value'], x['footnoteid']] for x in data])

print(list_value)     # ('Common Stock', 'Bond', 'Common Stock', 'Option') 
print(list_footnote)  # ('', 'F2, F3', '', 'F4')