Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python字典中组织数据_Python_Dictionary - Fatal编程技术网

在Python字典中组织数据

在Python字典中组织数据,python,dictionary,Python,Dictionary,我正在使用selenium从网页中提取一些数据 table_body = browser.find_element_by_tag_name('tbody').text print(table_body) 这是给我的 '1 LA, California 3 bed room 845,600 \n1 2 OK, Oklahoma city 3 bed room 160,000 \n2 3 TX, Dallas 1 bed room 60,000' \n3 然而,这都是一个字符串和多行。 是否有一

我正在使用selenium从网页中提取一些数据

table_body = browser.find_element_by_tag_name('tbody').text
print(table_body)
这是给我的

'1 LA, California 3 bed room 845,600 \n1
2 OK, Oklahoma city 3 bed room 160,000 \n2
3 TX, Dallas 1 bed room 60,000' \n3
然而,这都是一个字符串和多行。 是否有一种方法可以将每个字符分开,以便将其附加到词典中。我试图
。将它附加到列表中,它返回
[…]],[…]
,我试图
。将它更新为字典,我得到一个错误,说
值错误:字典更新序列元素35; 0的长度为3;2是必需的


更新:我想我的问题是混淆了我的格式

假设表体是字符串

>>> table_body.split("|")
编辑:这样应该可以了

>>> for row in table_body.split("|"):
...    print row.split(',')
编辑2:如果没有“|”符号,只有换行符

>>> for row in table_body.split("\n"):
...    print row.split(',')

假设table_body是一个字符串

>>> table_body.split("|")
编辑:这样应该可以了

>>> for row in table_body.split("|"):
...    print row.split(',')
编辑2:如果没有“|”符号,只有换行符

>>> for row in table_body.split("\n"):
...    print row.split(',')

要从具有默认值的字符串中获取
字典
,例如:

>>> table_body = 'Rank | Name | State | Position | cost | value'

# List with stripped whitespaces
>>> [s.strip() for s in table_body.split('|')]
['Rank', 'Name', 'State', 'Position', 'cost', 'value']

# Dictionary from tab table_body
>>> dict([(s.strip(), None) for s in table_body.split('|')])
{'Name': None, 'value': None, 'State': None, 'cost': None, 'Rank': None, 'Position': None}

要从具有默认值的字符串中获取
字典
,例如:

>>> table_body = 'Rank | Name | State | Position | cost | value'

# List with stripped whitespaces
>>> [s.strip() for s in table_body.split('|')]
['Rank', 'Name', 'State', 'Position', 'cost', 'value']

# Dictionary from tab table_body
>>> dict([(s.strip(), None) for s in table_body.split('|')])
{'Name': None, 'value': None, 'State': None, 'cost': None, 'Rank': None, 'Position': None}
以var lst为例:

lst = 'Rank | Name | State | Position | cost | value | etc...'
如果您做出以下决定:

>>> table_body = lst.split("|")
然后打印表体:

>>>print (table_body)
['Rank ', ' Name ', ' State ', ' Position ', ' cost ', ' value ', ' 
  etc...']
如果你尝试

>>> dict1 = dict(table_bodyt)
您将得到一个错误:

dictionary update sequence element #0 has length 1; 2 is required
为什么? 因为要将列表转换为dict,列表中的每个元素都需要是一个子列表,其中包含两个元素,一个用于键,另一个用于值。例如:

>>> lst2 = [[n,table_body[n]] for n in range(len(table_body))]
>>> dict(lst2)
{0: 'Rank ',
 1: ' Name ',
 2: ' State ',
 3: ' Position ',
 4: ' cost ',
 5: ' value ',
 6: ' etc...'}
以var lst为例:

lst = 'Rank | Name | State | Position | cost | value | etc...'
如果您做出以下决定:

>>> table_body = lst.split("|")
然后打印表体:

>>>print (table_body)
['Rank ', ' Name ', ' State ', ' Position ', ' cost ', ' value ', ' 
  etc...']
如果你尝试

>>> dict1 = dict(table_bodyt)
您将得到一个错误:

dictionary update sequence element #0 has length 1; 2 is required
为什么? 因为要将列表转换为dict,列表中的每个元素都需要是一个子列表,其中包含两个元素,一个用于键,另一个用于值。例如:

>>> lst2 = [[n,table_body[n]] for n in range(len(table_body))]
>>> dict(lst2)
{0: 'Rank ',
 1: ' Name ',
 2: ' State ',
 3: ' Position ',
 4: ' cost ',
 5: ' value ',
 6: ' etc...'}

你能展示一个输出样本吗?@JkShaw这是输出样本。当我拉它时,它会给我每个TR和所有数据,然后生成一个新字符串,因此当我将它放在每个属性末尾的列表中时,它只会创建一个新行\n2、\n3、\n4等等。您能显示一个示例输出吗?@JkShaw有输出。当我拉它时,它会给我每个TR和所有数据,然后生成一个新字符串,所以当我把它放在每个属性末尾的列表中时,它只会创建一个新行\n2、\n3、\n4等等。解决方案很好,但你也应该去掉前导和尾随空格。@Sidon['Rank','Name','State','Position','cost','value','etc...]所有这些都是一个字符串,然后下一个具有所有相同属性的项目被移动到一个新行。因此所有项目都被分组在一个大字符串中。@David,这样你就可以在每行(一个字符串)中创建一个列表然后是这个列表的列表,最后是一个dict,跟在我上面的代码后面。这个解决方案很好,但是你也应该去掉前导和尾随空格。@Sidon['Rank','Name','State','Position','cost','value','etc..]所有这些都是一个字符串,然后下一个具有所有相同属性的项目被移动到一个新行。因此,所有项目都被分组在一个大字符串中。@David,这样您就可以在每行创建一个列表(一个字符串)然后是一个列表,最后是一个dict,按照我上面的代码。我尝试了这个,但不起作用,因为它都是一个大字符串根据你的评论编辑了我的答案。尝试一下,看看是否有效。我尝试了这个,但不起作用,因为它都是一个大字符串根据你的评论编辑了我的答案。尝试一下,看看是否有效.