【问题标题】:How do you make a dictionary key from a CSV?如何从 CSV 制作字典键?
【发布时间】:2016-08-20 17:31:36
【问题描述】:

我在使用 csvreader 创建字典键时遇到问题。我想创建一个字典,其中包含找到数据的位置列,以便以后可以将其写出到新位置。我没有包含 write 功能,因为我想先了解如何创建密钥。

例如,此数据点 123-123-1234 在行 [0] 中找到。

input_file_column_modification = ''
myData = []
primary_key_list = {}

if os.path.isfile(filename):
  input_file_column_modification = open(filename)
  myData = [item for item in csv.reader(input_file_column_modification)]

for row in myData:
  primary_key_pattern_match = re.search('\d{3}-\d{3}-\d{4}, row[0], re.I)
  if primary_key_pattern_match is not None:
  ** QUESTION: How do I keep track of the row/columns were the data is being found?
  primary_key_list.append(primary_key_pattern_match.group(0))

正在读入的当前输入 请注意,2 个条目没有要匹配的模式。


信息、地址、城市、邮政编码、上次更新时间

Lorem ipsum dolor sit amet, consectetur (123-123-1234)adipiscing elita,100 some address,cityname,"zipcode",03/24/2016

Lorem ipsum dolor sit amet, consectetur adipiscing elit,200 some address, cityname,zipcode,03/24/2016

Lorem ipsum dolor sit amet, consectetur (345-345-3456) adipiscing elit,300 some address,cityname,zipcode,03/24/2016

Lorem ipsum dolor sit amet, consectetur adipiscing elit,400 some address, cityname,zipcode,03/24/2016

Lorem ipsum dolor sit amet, consectetur (567-567-5678) adipiscing elit,500 some address,cityname,zipcode,03/24/2016

【问题讨论】:

    标签: python


    【解决方案1】:

    一种方法是通过enumerate,它为您提供索引或“迭代计数器”以及循环遍历它时可迭代对象的值:

    for row_num, row in enumerate(myData):
        primary_key_pattern_match = re.search('\d{3}-\d{3}-\d{4}, row[0]', re.I)
        if primary_key_pattern_match is not None:
            row_num_and_row_data = (row_num, row)
            # You now have a tuple whose 1st element is the row number
            # and whose 2nd element is the row (a tuple or list).
    
            # You can also skip making a tuple and add the row 
            # to a dictionary immediately (declare it before the loop): 
            row_dict[row_num] = row
    
            # or to add the results of the regex:
            row_dict[row_num] = primary_key_pattern_match.group(0)
    

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2012-04-24
      • 2017-04-24
      • 1970-01-01
      相关资源
      最近更新 更多