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')